/** * @param $productId * @return bool|void */ public function processViews($productId) { if (!$this->_config->isEnabled()) { return false; } if ($this->_customerSession->isLoggedIn()) { return $this->_eventClient->saveCustomerViewProduct($this->_customerSession->getCustomerId(), $productId); } return false; }
/** * Send customer-buys-item events to PredictionIO for all existing orders * * @param $customerId * @param $products * @return bool */ protected function _sendPurchaseEvent($customerId, $products) { foreach ($products as $productId) { if (!$this->_eventClient->saveCustomerBuyProduct($customerId, $productId)) { return false; } } return true; }
/** * Method called on the cron to do the export * * @return bool */ public function export() { $productExport = $this->_getProductsForExport(); $productCount = count($productExport); $exportCount = 0; foreach ($productExport as $productId => $categories) { try { $this->_eventClient->saveProductData($productId, $categories); $this->_setExportedProducts($productId); ++$exportCount; } catch (\Exception $e) { $this->_logger->addCritical("Product ID - {$productId} failed to export: " . $e); return false; } } $this->_updateDatabase(); $this->_logger->addInfo("Successfully exported " . $exportCount . " out " . $productCount . " products "); return true; }
/** * Send all the guest product views to PredictionIO when we get the customers ID * * @param $guestProductViews */ private function _sendAllGuestProductViews($guestProductViews) { foreach ($guestProductViews as $productId) { $this->_eventClient->saveCustomerViewProduct($this->_customerSession->getCustomerId(), $productId); } }
/** * Send the new product to PredictionIO * * @param $productId * @return bool */ private function _sendToPredictionIO($productId) { return $this->_eventClient->saveProductData($productId, $this->_getProductCategoryCollection($productId)); }