From 2e6dc5f27ce42d484167807cce342ae85cd3f0a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 15 Jan 2026 15:22:09 +0100 Subject: [PATCH] Lock the sale being processed for Shopify Closes #14500 --- modules/web_shop_shopify/sale.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/modules/web_shop_shopify/sale.py b/modules/web_shop_shopify/sale.py index ddf94981c4..2d57c8e54b 100644 --- a/modules/web_shop_shopify/sale.py +++ b/modules/web_shop_shopify/sale.py @@ -556,6 +556,7 @@ class Sale(IdentifierMixin, metaclass=PoolMeta): """ pool = Pool() Payment = pool.get('account.payment') + self.lock() with self.web_shop.shopify_session(): for shipment in self.shipments: fulfillment = shipment.get_shopify(self) @@ -578,6 +579,9 @@ class Sale(IdentifierMixin, metaclass=PoolMeta): shipment.set_shopify_identifier( self, gid2id(fulfillment['id'])) Transaction().commit() + # Start a new transaction as commit release the lock + self.__class__.__queue__._process_shopify(self) + return elif shipment.state == 'cancelled': fulfillment_id = shipment.get_shopify_identifier(self) if fulfillment_id: