diff --git a/addons/sale/views/sale_views.xml b/addons/sale/views/sale_views.xml
index 3593f4142fd..dfe7934538c 100644
--- a/addons/sale/views/sale_views.xml
+++ b/addons/sale/views/sale_views.xml
@@ -308,6 +308,7 @@
'required': [('display_type', '=', False)],
}"
force_save="1"
+ widget="many2one_barcode"
/>
diff --git a/addons/web/static/src/js/fields/field_registry.js b/addons/web/static/src/js/fields/field_registry.js
index c94c315cfa6..35d10c5a5e4 100644
--- a/addons/web/static/src/js/fields/field_registry.js
+++ b/addons/web/static/src/js/fields/field_registry.js
@@ -65,6 +65,7 @@ registry
.add('radio', relational_fields.FieldRadio)
.add('selection_badge', relational_fields.FieldSelectionBadge)
.add('many2one', relational_fields.FieldMany2One)
+ .add('many2one_barcode', relational_fields.FieldMany2One)
.add('list.many2one', relational_fields.ListFieldMany2One)
.add('kanban.many2one', relational_fields.KanbanFieldMany2One)
.add('many2many', relational_fields.FieldMany2Many)
diff --git a/doc/reference/javascript_reference.rst b/doc/reference/javascript_reference.rst
index 9c7b10c3d47..059b5796041 100644
--- a/doc/reference/javascript_reference.rst
+++ b/doc/reference/javascript_reference.rst
@@ -2005,6 +2005,17 @@ Relational fields
- Supported field types: *many2one*
+- many2one_barcode (FieldMany2OneBarcode)
+ Widget for many2one fields allows to open the camera from a mobile device (Android/iOS) to scan a barcode.
+
+ Specialization of many2one field where the user is allowed to use the native camera to scan a barcode.
+ Then it uses name_search to search this value.
+
+ If this widget is set and user is not using the mobile application,
+ it will fallback to regular many2one (FieldMany2One)
+
+ - Supported field types: *many2one*
+
- kanban.many2one (KanbanFieldMany2One)
Default widget for many2one fields (in kanban view). We need to disable all
edition in kanban views.