     subscriptionType: subscriptionType
 
   getProductData: ->
-    { feeAmount, title, description, subscriptionType: subType } = @inputs
+    do (i = @inputs) =>
+      title           = i.title.getValue()
+      description     = i.description.getValue()
+      overageEnabled  = i.overageEnabled.getValue()
+      soldAlone       = i.soldAlone.getValue()
+      priceIsVolatile = i.priceIsVolatile.getValue()
+      feeAmount       =
+        unless priceIsVolatile
+        then i.feeAmount.getValue() * 100
 
-    { subscriptionType, feeUnit, feeInterval } = @getPlanInfo subType.getValue()
+      { subscriptionType, feeUnit, feeInterval } = @getPlanInfo()
 
-    {
-      title             : title.getValue()
-      description       : description.getValue()
-      feeAmount         : feeAmount.getValue() * 100
-      feeUnit
-      feeInterval
-      subscriptionType
-    }
+      {
+        title         : i.title.getValue()
+        description   : i.description.getValue()
+        feeAmount
+        feeUnit
+        feeInterval
+        subscriptionType
+        overageEnabled
+        soldAlone
+        priceIsVolatile
+      }
 
   handleSubscriptionType: ->
     subscriptionType = @inputs.subscriptionType.getValue()

          partial     : "/ #{ data.subscriptionType ? 'mo' }"
          cssClass    : 'fr'

    if options.showOverage
      options.fields.overageEnabled =
        label         : "Overage enabled"


  constructor: (options = {}, data = {}) ->

    model = data  if data.planCode

    options.isRecurOptional ?= yes

    options.callback ?= =>
      @emit 'SaveRequested', model, @getProductData()

    options.buttons ?=
      Save        :
