/** * Go through all products that need to be cleaned and clean them. * @return $this object */ public function cleanAllProducts() { // Get all products that need cleaning - due to loose comparison of column // values by the collection, any products that do not include an 'is_clean' // column will be included. $productsToClean = $this->_products->getItemsByColumnValue('is_clean', false); $logData = ['total_products' => count($productsToClean)]; $logMessage = 'Cleaning {total_products} products.'; $this->_logger->info($logMessage, $this->_context->getMetaData(__CLASS__, $logData)); foreach ($productsToClean as $product) { $this->cleanProduct($product); } // save all the products that may have been modified while cleaning products $this->_helper->saveCollectionStubIndexer($this->_products); return $this; }