diff --git a/addons/delivery/models/delivery_carrier.py b/addons/delivery/models/delivery_carrier.py
index e9031a01390..dd3fed33f82 100644
--- a/addons/delivery/models/delivery_carrier.py
+++ b/addons/delivery/models/delivery_carrier.py
@@ -51,6 +51,7 @@ class DeliveryCarrier(models.Model):
price_rule_ids = fields.One2many('delivery.price.rule', 'carrier_id', 'Pricing Rules', copy=True)
state = fields.Selection([('test', 'Testing'), ('production', 'Production')], 'State')
fixed_price = fields.Float(compute='_compute_fixed_price', inverse='_set_product_fixed_price', store=True, string='Fixed Price',help="Keep empty if the pricing depends on the advanced pricing per destination")
+ shipping_enabled = fields.Boolean(string="Shipping enabled", default=True, help="Uncheck this box to disable package shipping while validating Delivery Orders")
@api.depends('product_id.list_price', 'product_id.product_tmpl_id.list_price')
def _compute_fixed_price(self):
diff --git a/addons/delivery/models/stock_picking.py b/addons/delivery/models/stock_picking.py
index 344828b27a2..2e4242bac26 100644
--- a/addons/delivery/models/stock_picking.py
+++ b/addons/delivery/models/stock_picking.py
@@ -73,7 +73,7 @@ class StockPicking(models.Model):
self.ensure_one()
res = super(StockPicking, self).do_transfer()
- if self.carrier_id and self.carrier_id.delivery_type not in ['fixed', 'base_on_rule']:
+ if self.carrier_id and self.carrier_id.delivery_type not in ['fixed', 'base_on_rule'] and self.carrier_id.shipping_enabled:
self.send_to_shipper()
return res
diff --git a/addons/delivery/views/delivery_view.xml b/addons/delivery/views/delivery_view.xml
index f28c787252c..dcdd0ab9b13 100644
--- a/addons/delivery/views/delivery_view.xml
+++ b/addons/delivery/views/delivery_view.xml
@@ -35,6 +35,7 @@
+