details:   https://code.tryton.org/tryton/commit/f859e3843468
branch:    default
user:      Cédric Krier <[email protected]>
date:      Wed Mar 25 22:11:59 2026 +0100
description:
        Do not call on_change_party when creating sale from webshop

        Only the addresses are set from the party to prevent side effects from 
other
        modules who may extended the method.
diffstat:

 modules/web_shop/web.py |  9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diffs (22 lines):

diff -r 2ec0ff372d38 -r f859e3843468 modules/web_shop/web.py
--- a/modules/web_shop/web.py   Wed Mar 25 23:25:50 2026 +0100
+++ b/modules/web_shop/web.py   Wed Mar 25 22:11:59 2026 +0100
@@ -255,11 +255,16 @@
         Sale = pool.get('sale.sale')
         if not party:
             party = self.guest_party
-        sale = Sale(party=party)
+        sale = Sale()
         sale.company = self.company
         sale.warehouse = self.warehouse
         sale.web_shop = self
-        sale.on_change_party()
+        if party:
+            sale.party = party
+            sale.invoice_address = party.address_get(type='invoice')
+            with Transaction().set_context(
+                    warehouse=self.warehouse.id if self.warehouse else None):
+                sale.shipment_address = party.address_get(type='delivery')
         sale.on_change_web_shop()
         sale.currency = self.currency
         sale.invoice_method = 'order'

Reply via email to