         else
           variant[mapping.to] = [image]
 
+  ###
+  # Extracts price information from currency node and depending on mapping
+  # configuration it saves it as variant price or custom attribute value.
+  #
+  # @param {Object} item Item to get currency prices from
+  # @param {Object} product Product object to save processed values to
+  # @param {Object} variant Variant object to save processed values to
+  ###
   _processCurrencies: (item, product, variant) ->
     _.each item, (value, key) =>
       if _.has(@mapping.productMapping, key)

        deferred.resolve body
    deferred.promise

  _createCategory: (payload) ->
    deferred = Q.defer()
    @rest.POST '/categories', payload, (error, response, body) ->


    # process variant 'VariationImages'
    _.each v.VariationImages[0]?.VariationImage, (item) =>
      @_processImages(item, variant)

    variant

  ###
  # Adds / assigns category to product.
  #
  # @param {Object} product New product object to fill
  # @param {Object} data Data to extract category information from
  # @param {Array} fetchedCategories List of existing categories
  ###
  _processCategories: (product, data, fetchedCategories) ->
    catReferences = []
    _.each data.Categories[0]?.Category, (c) =>
