/** * {@inheritdoc} */ public function visitOrder(OrderInterface $order) { if ($order->hasCoupon()) { $coupon = $order->getCoupon(); $modifierValue = $this->calculateCouponModifier($coupon, $order); $modifier = $this->orderModifierProvider->getOrderModifier($order, 'coupon_discount'); $modifier->setCurrency($order->getCurrency()); $modifier->setGrossAmount($order->getProductTotal()->getGrossPrice() * $modifierValue); $modifier->setNetAmount($order->getProductTotal()->getNetPrice() * $modifierValue); $modifier->setTaxAmount($order->getProductTotal()->getTaxAmount() * $modifierValue); } else { $order->removeModifier('coupon_discount'); } }