rssUrlBuilder = $rssUrlBuilder; $this->getSourceItemsCollection = $getSourceItemsCollection; } /** * @return void */ protected function _construct() { $this->setCacheKey('rss_catalog_notifystock'); parent::_construct(); } /** * {@inheritdoc} */ public function getRssData() { $newUrl = $this->rssUrlBuilder->getUrl(['_secure' => true, '_nosecret' => true, 'type' => 'notifystock']); $title = __('Low Stock Products'); $data = ['title' => $title, 'description' => $title, 'link' => $newUrl, 'charset' => 'UTF-8']; foreach ($this->getSourceItemsCollection->execute() as $item) { $url = $this->getUrl( 'catalog/product/edit', ['id' => $item->getId(), '_secure' => true, '_nosecret' => true] ); $qty = (float)$item->getData('qty'); $description = __( '%1 has reached a quantity of %2 in source %3(Source Code: %4).', $item->getData('name'), $qty, $item->getData('source_name'), $item->getData(SourceItemInterface::SOURCE_CODE) ); $data['entries'][] = ['title' => $item->getData('name'), 'link' => $url, 'description' => $description]; } return $data; } /** * @inheritdoc */ public function getCacheLifetime() { return 600; } /** * @inheritdoc */ public function isAllowed() { return true; } /** * @inheritdoc */ public function getFeeds() { return []; } /** * @inheritdoc */ public function isAuthRequired() { return true; } }