diff --git a/addons/website_portal_sale/models/sale_order.py b/addons/website_portal_sale/models/sale_order.py
index 2602592c78721efa79eefbd8435095067cf40611..d36779d8797bd31c125edd9ddc212528c8a0d70f 100644
--- a/addons/website_portal_sale/models/sale_order.py
+++ b/addons/website_portal_sale/models/sale_order.py
@@ -14,7 +14,7 @@ class SaleOrder(models.Model):
         portal users that have access to a confirmed order. """
         # TDE note: read access on sale order to portal users granted to followed sale orders
         self.ensure_one()
-        if self.state in ['draft', 'cancel']:
+        if self.state == 'cancel' or (self.state == 'draft' and not self.env.context.get('mark_so_as_sent')):
             return super(SaleOrder, self).get_access_action()
         if self.env.user.share:
             try: