diff --git a/addons/website_sale_stock/models/website.py b/addons/website_sale_stock/models/website.py index 59e9f826173..b83f941ae94 100644 --- a/addons/website_sale_stock/models/website.py +++ b/addons/website_sale_stock/models/website.py @@ -23,3 +23,7 @@ class Website(models.Model): self.env['ir.default'].get('sale.order', 'warehouse_id') or self.env['stock.warehouse'].sudo().search([('company_id', '=', self.company_id.id)], limit=1).id ) + + def sale_get_order(self, force_create=False, code=None, update_pricelist=False, force_pricelist=False): + so = super().sale_get_order(force_create=force_create, code=code, update_pricelist=update_pricelist, force_pricelist=force_pricelist) + return so.with_context(warehouse=so.warehouse_id.id) if so else so diff --git a/addons/website_sale_stock/tests/test_website_sale_stock_product_warehouse.py b/addons/website_sale_stock/tests/test_website_sale_stock_product_warehouse.py index cc792581911..e7b1e45f8cd 100644 --- a/addons/website_sale_stock/tests/test_website_sale_stock_product_warehouse.py +++ b/addons/website_sale_stock/tests/test_website_sale_stock_product_warehouse.py @@ -98,6 +98,9 @@ class TestWebsiteSaleStockProductWarehouse(TestSaleProductAttributeValueCommon): }) with MockRequest(self.env, website=self.website, sale_order_id=so.id): + website_so = self.website.sale_get_order() + self.assertEqual(website_so.order_line.product_id.virtual_available, 10, "This quantity should be based on SO's warehouse") + values = so._cart_update(product_id=self.product_A.id, line_id=so.order_line.id, set_qty=20) self.assertTrue(values.get('warning', False)) self.assertEqual(values.get('quantity'), 10)