diff --git a/commerce-service/src/main/java/com/liferay/commerce/internal/price/CommerceProductPriceCalculationImpl.java b/commerce-service/src/main/java/com/liferay/commerce/internal/price/CommerceProductPriceCalculationImpl.java
index <HASH>..<HASH> 100644
--- a/commerce-service/src/main/java/com/liferay/commerce/internal/price/CommerceProductPriceCalculationImpl.java
+++ b/commerce-service/src/main/java/com/liferay/commerce/internal/price/CommerceProductPriceCalculationImpl.java
@@ -88,10 +88,6 @@ public class CommerceProductPriceCalculationImpl
 		commerceProductPrice.setUnitPrice(unitPrice);
 		commerceProductPrice.setUnitPromoPrice(promoPrice);
 
-		CommerceDiscountValue commerceDiscountValue =
-			_commerceDiscountCalculation.getProductCommerceDiscountValue(
-				cpInstanceId, quantity, unitPrice.getPrice(), commerceContext);
-
 		BigDecimal finalPrice = unitPrice.getPrice();
 
 		BigDecimal promo = promoPrice.getPrice();
@@ -102,6 +98,10 @@ public class CommerceProductPriceCalculationImpl
 			finalPrice = promoPrice.getPrice();
 		}
 
+		CommerceDiscountValue commerceDiscountValue =
+			_commerceDiscountCalculation.getProductCommerceDiscountValue(
+				cpInstanceId, quantity, finalPrice, commerceContext);
+
 		finalPrice = finalPrice.multiply(BigDecimal.valueOf(quantity));
 
 		if (commerceDiscountValue != null) {
COMMERCE-<I> We should be calculating discounts based on finalPrice