       created: 0
       updated: 0
       failed: 0
+      productTypeUpdated: 0
       errorDir: @errorDir
 
   summaryReport: (filename) ->

      else
        @_prepareNewProduct(prodToProcess)
        .then (product) =>
          @enumValidator.validateProduct(product, @_cache.productType[product.productType.id])
          .then =>
            @client.products.create(product)

    debug 'About to send %s requests', _.size(posts)
    Promise.settle(posts)

  _fetchSameForAllAttributesOfProductType: (productType) =>
    new Promise (resolve) =>


  _createOrUpdate: (productsToProcess, existingProducts) ->
    debug 'Products to process: %j', {toProcess: productsToProcess, existing: existingProducts}
    enumUpdateActions = {}
    posts = _.map productsToProcess, (prodToProcess) =>
      existingProduct = @_isExistingEntry(prodToProcess, existingProducts)
      if existingProduct?
        @_fetchSameForAllAttributesOfProductType(prodToProcess.productType)
        .then (sameForAllAttributes) =>
          @_validateEnums(prodToProcess, @_cache.productType[prodToProcess.productType.id])
          .then (updateActions) =>
            if updateActions and _.size(updateActions.actions) > 0 then @_updateEnumUpdateActions(enumUpdateActions, updateActions)
            @_prepareUpdateProduct(prodToProcess, existingProduct).then (preparedProduct) =>
              synced = @sync.buildActions(preparedProduct, existingProduct, sameForAllAttributes)
              if synced.shouldUpdate()
