private function calculateCouponModifier(CouponInterface $coupon, OrderInterface $order) : float
{
$modifierType = $coupon->getModifierType();
$modifierValue = $coupon->getModifierValue();
$baseCurrency = $coupon->getCurrency();
$targetCurrency = $order->getCurrency();
$totalGrossPrice = $order->getProductTotal()->getGrossPrice();
if ('%' === $modifierType) {
return $modifierValue / 100;
}
if ('-' === $modifierType) {
$modifierValue = $this->currencyHelper->convert($modifierValue, $baseCurrency, $targetCurrency);
return $modifierValue >= $totalGrossPrice ? 1 : $modifierValue / $totalGrossPrice;
}
return 1;
}