From e449291f281beee132c6595c95a79068b8a363f9 Mon Sep 17 00:00:00 2001 From: Richard Mathot Date: Mon, 31 Jul 2017 14:16:50 +0200 Subject: [PATCH] [FIX] delivery: don't crash ecommerce when no grid has been found (+ improve a bit the error message) --- addons/delivery/models/delivery_grid.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/addons/delivery/models/delivery_grid.py b/addons/delivery/models/delivery_grid.py index 0dde3b355cf..d2b86ab96d0 100644 --- a/addons/delivery/models/delivery_grid.py +++ b/addons/delivery/models/delivery_grid.py @@ -53,7 +53,13 @@ class ProviderGrid(models.Model): 'error_message': _('Error: no matching grid.'), 'warning_message': False} - price_unit = self._get_price_available(order) + try: + price_unit = self._get_price_available(order) + except UserError as e: + return {'success': False, + 'price': 0.0, + 'error_message': e.name, + 'warning_message': False} if order.company_id.currency_id.id != order.pricelist_id.currency_id.id: price_unit = order.company_id.currency_id.with_context(date=order.date_order).compute(price_unit, order.pricelist_id.currency_id) @@ -94,7 +100,7 @@ class ProviderGrid(models.Model): criteria_found = True break if not criteria_found: - raise UserError(_("Selected product in the delivery method doesn't fulfill any of the delivery carrier(s) criteria.")) + raise UserError(_("No price rule matching this order; delivery cost cannot be computed.")) return price