protected function getCouponFieldValue($fieldName, $data, $defaultValue = null)
    {
        if (isset($data[self::COUPON_DATASET_NAME][$fieldName])) {
            return $this->checkCouponFieldValue(
                $fieldName,
                $data[self::COUPON_DATASET_NAME][$fieldName]
            );
        } elseif (null !== $defaultValue) {
            return $defaultValue;
        } else {
            throw new \InvalidArgumentException(sprintf("The coupon field name %s was not found in the coupon form", $fieldName));
        }
    }