/**
  * {@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');
     }
 }