From 389a9d051aaabb9ccd17aa8337b2e3dc47d5a9ab Mon Sep 17 00:00:00 2001
From: Jonathan Sacksick <jonathan.sacksick@gmail.com>
Date: Thu, 7 Apr 2022 09:56:22 +0300
Subject: [PATCH] Issue #3253104 by jsacksick: Ensure a price is resolved
 before setting the unit price on refresh.

---
 modules/order/src/OrderRefresh.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/order/src/OrderRefresh.php b/modules/order/src/OrderRefresh.php
index e4779ee67..c04a327df 100644
--- a/modules/order/src/OrderRefresh.php
+++ b/modules/order/src/OrderRefresh.php
@@ -175,7 +175,7 @@ class OrderRefresh implements OrderRefreshInterface {
         $order_item->setTitle($purchased_entity->getOrderItemTitle());
         if (!$order_item->isUnitPriceOverridden()) {
           $unit_price = $this->chainPriceResolver->resolve($purchased_entity, $order_item->getQuantity(), $context);
-          $order_item->setUnitPrice($unit_price);
+          $unit_price ? $order_item->setUnitPrice($unit_price) : $order_item->set('unit_price', NULL);
         }
       }
       // If the order refresh is running during order preSave(),
-- 
GitLab