     @ensureEnums = options.ensureEnums or false
     @filterUnknownAttributes = options.filterUnknownAttributes or false
     @ignoreSlugUpdates = options.ignoreSlugUpdates or false
+    @batchSize = options.batchSize or 30
     @client = new SphereClient options.clientConfig
     @enumValidator = new EnumValidator @logger
     @unknownAttributesFilter = new UnknownAttributesFilter @logger

    @_processBatches(chunk).then -> cb()

  _processBatches: (products) ->
    batchedList = _.batchList(products, 30) # max parallel elem to process
    Promise.map batchedList, (productsToProcess) =>
      debug 'Ensuring existence of product type in memory.'
      @_ensureProductTypesInMemory(productsToProcess)

          uniqueEnumUpdateActions = @_filterUniqueUpdateActions(enumUpdateActions)
          @_updateProductType(uniqueEnumUpdateActions)
      .then =>
        skus = @_extractUniqueSkus(productsToProcess)
        predicate = @_createProductFetchBySkuQueryPredicate(skus)
        if Buffer.byteLength(predicate,'utf-8') > 7800
          errMessage = "product fetch query size: #{Buffer.byteLength(predicate,'utf-8')} bytes, exceeded the supported " +
            "size, please try with a smaller batch size."
          @logger.error(errMessage)
          throw (errMessage)
        @client.productProjections
        .where(predicate)
        .staged(true)
