diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml
index 18f3bd4957f..806b215ed02 100644
--- a/addons/website_sale/views/templates.xml
+++ b/addons/website_sale/views/templates.xml
@@ -1257,7 +1257,7 @@
-
+
diff --git a/addons/website_sale_delivery/controllers/main.py b/addons/website_sale_delivery/controllers/main.py
index cbb456d7968..e9403cb26bb 100644
--- a/addons/website_sale_delivery/controllers/main.py
+++ b/addons/website_sale_delivery/controllers/main.py
@@ -44,8 +44,14 @@ class WebsiteSaleDelivery(WebsiteSale):
has_stockable_products = any(line.product_id.type in ['consu', 'product'] for line in order.order_line)
if has_stockable_products:
+ if order.carrier_id and not order.delivery_rating_success:
+ values['errors'].append(
+ (_("Ouch, you cannot choose this carrier!"),
+ _("%s does not ship to your address, please choose another one.") % order.carrier_id.name))
+ order._remove_delivery_line()
+
delivery_carriers = order._get_delivery_methods()
- values['deliveries'] = delivery_carriers.sudo().with_context(order_id=order.id)
+ values['deliveries'] = delivery_carriers.sudo()
values['delivery_action_id'] = request.env.ref('delivery.action_delivery_carrier_form').id
return values
diff --git a/addons/website_sale_delivery/models/sale_order.py b/addons/website_sale_delivery/models/sale_order.py
index 996ae6eaf89..036d2a13a4f 100644
--- a/addons/website_sale_delivery/models/sale_order.py
+++ b/addons/website_sale_delivery/models/sale_order.py
@@ -2,8 +2,7 @@
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import logging
-from odoo import api, fields, models, _
-from odoo.exceptions import ValidationError
+from odoo import api, fields, models
_logger = logging.getLogger(__name__)
@@ -61,7 +60,8 @@ class SaleOrder(models.Model):
self.write({'carrier_id': carrier.id})
if carrier:
self.get_delivery_price()
- self.set_delivery_line()
+ if self.delivery_rating_success:
+ self.set_delivery_line()
else:
self._remove_delivery_line()
@@ -85,8 +85,4 @@ class SaleOrder(models.Model):
values = super(SaleOrder, self)._cart_update(product_id, line_id, add_qty, set_qty, **kwargs)
- if add_qty or set_qty is not None:
- for sale_order in self:
- self._check_carrier_quotation()
-
return values
diff --git a/addons/website_sale_delivery/static/src/js/website_sale_delivery.js b/addons/website_sale_delivery/static/src/js/website_sale_delivery.js
index 46caab18e0e..ff48ebd9dfd 100644
--- a/addons/website_sale_delivery/static/src/js/website_sale_delivery.js
+++ b/addons/website_sale_delivery/static/src/js/website_sale_delivery.js
@@ -1,3 +1,4 @@
+'use strict';
$(document).ready(function () {
// When choosing an delivery carrier, update the quotation and the acquirers
@@ -11,7 +12,7 @@ $(document).ready(function () {
var value = $(this).val();
var $provider_free = $("select[name='country_id']:not(.o_provider_restricted), select[name='state_id']:not(.o_provider_restricted)");
var $provider_restricted = $("select[name='country_id'].o_provider_restricted, select[name='state_id'].o_provider_restricted");
- if (value == 0) {
+ if (value === 0) {
// Ship to the same address : only show shipping countries available for billing
$provider_free.hide().attr('disabled', true);
$provider_restricted.show().attr('disabled', false).change();
diff --git a/addons/website_sale_delivery/views/website_sale_delivery_templates.xml b/addons/website_sale_delivery/views/website_sale_delivery_templates.xml
index e7989274a34..6b4d5ef79be 100644
--- a/addons/website_sale_delivery/views/website_sale_delivery_templates.xml
+++ b/addons/website_sale_delivery/views/website_sale_delivery_templates.xml
@@ -25,20 +25,14 @@
-
Choose a delivery method
+
Choose a delivery method