public function process($data) { if (!isset($data["RESULT_ID"])) { throw new ArgumentNullException("data[\"RESULT_ID\"]"); } if (isset($data["XML"])) { $fields["RESULTS"] = $data["XML"]; \Bitrix\Sale\TradingPlatform\Ebay\Feed\ResultsTable::update($data["RESULT_ID"], $fields); } $message = ""; if (isset($data["ARRAY"]["RequestDetails"]["Errors"]["Error"])) { $message .= $this->getErrorsString($data["ARRAY"]["RequestDetails"]["Errors"]["Error"]); } if (isset($data["ARRAY"]["RequestDetails"]["Warnings"]["Warning"])) { $message .= $this->getWarningsString($data["ARRAY"]["RequestDetails"]["Warnings"]["Warning"]); } if (isset($data["ARRAY"]["ProductResult"])) { $message .= $this->getProductsString($data["ARRAY"]["ProductResult"]); } if (strlen($message) > 0) { $message = "RequestId: " . $data["ARRAY"]["RequestDetails"]["RequestID"] . "\n" . "StartTime: " . $data["ARRAY"]["RequestDetails"]["StartTime"] . "\n" . "EndTime: " . $data["ARRAY"]["RequestDetails"]["EndTime"] . "\n\n" . $message; Ebay::log(Logger::LOG_LEVEL_ERROR, "EBAY_FEED_RESULTS_ERROR", $data["ARRAY"]["RequestDetails"]["RequestID"], $message, $this->siteId); } return true; }
public function rewind() { $this->feedsToCheck = array(); $res = ResultsTable::getList(array('filter' => $this->filter)); while ($feed = $res->fetch()) { $this->feedsToCheck[$feed["ID"]] = $feed; } $feedData = reset($this->feedsToCheck); if ($feedData !== false) { $this->resultFileContent = $this->getFileContent($feedData); } }
public static function process($data) { if (!isset($data["RESULT_ID"])) { throw new ArgumentNullException("data[\"RESULT_ID\"]"); } $id = $data["RESULT_ID"]; unset($data["RESULT_ID"]); if (isset($data["PROCESSING_REQUEST_ID"]) || isset($data["PROCESSING_RESULT"])) { $fields = $data; } else { $fields = array("PROCESSING_REQUEST_ID" => "-", "PROCESSING_RESULT" => "-"); } return \Bitrix\Sale\TradingPlatform\Ebay\Feed\ResultsTable::update($id, $fields); }
protected function sendDataSftp() { $directory = new \Bitrix\Main\IO\Directory($this->path . "/zip"); if (!$directory->isExists()) { throw new SystemException("Directory" . $this->path . "/zip does not exist! " . __METHOD__); } $filesToSend = $directory->getChildren(); if (empty($filesToSend)) { return false; } $sftp = \Bitrix\Sale\TradingPlatform\Ebay\Helper::getSftp($this->siteId); $sftp->connect(); for ($i = 0; $i < count($filesToSend); $i++) { $directoryEntry = $filesToSend[$i]; $localPath = $directoryEntry->getPath(); if (!$directoryEntry instanceof \Bitrix\Main\IO\File || GetFileExtension($localPath) != "zip") { continue; } $remote = $this->remotePath . "/" . $directoryEntry->getName(); while (!$this->checkOuterConditions($sftp)) { if ($this->timer !== null && !$this->timer->check(15)) { return false; } sleep(10); } if ($sftp->uploadFile($localPath, $remote)) { $directoryEntry->delete(); ResultsTable::add(array("FILENAME" => $directoryEntry->getName(), "FEED_TYPE" => $this->feedType, "UPLOAD_TIME" => DateTime::createFromTimestamp(time()))); Ebay::log(Logger::LOG_LEVEL_INFO, "EBAY_DATA_PROCESSOR_SFTPQUEUE_SEND", $remote, "File sent successfully.", $this->siteId); } } return true; }
$ebayCategoriesVars = 0; $res = \Bitrix\Sale\TradingPlatform\Ebay\CategoryVariationTable::getList(array("select" => array("CNT"), "runtime" => array(new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(1)')))); if ($var = $res->fetch()) { $ebayCategoriesVars = $var["CNT"]; } $defaultFeedIntervals = \Bitrix\Sale\TradingPlatform\Helper::getDefaultFeedIntervals(); $res = \Bitrix\Sale\TradingPlatform\Ebay\Feed\ResultsTable::getList(array("select" => array("FEED_TYPE", "MAX_UPLOAD_TIME"), "group" => array("FEED_TYPE"), "runtime" => array(new \Bitrix\Main\Entity\ExpressionField('MAX_UPLOAD_TIME', 'MAX(UPLOAD_TIME)')))); $results = array(); while ($lastUpdates = $res->fetch()) { $results[$lastUpdates["FEED_TYPE"]] = $lastUpdates["MAX_UPLOAD_TIME"]; } $filter = array("LOGIC" => "OR"); foreach ($results as $feedType => $uploadTime) { $filter[] = array("FEED_TYPE" => $feedType, "UPLOAD_TIME" => $uploadTime); } $res = \Bitrix\Sale\TradingPlatform\Ebay\Feed\ResultsTable::getList(array('filter' => $filter)); $results = array(); while ($lastUpdates = $res->fetch()) { $results[$lastUpdates["FEED_TYPE"]] = $lastUpdates; } $arTabs = array(array("DIV" => "ebay_exchange", "TAB" => Loc::getMessage("SALE_EBAY_TAB_EXCHANGE"), "TITLE" => Loc::getMessage("SALE_EBAY_TAB_EXCHANGE_DESCR")), array("DIV" => "ebay_meta", "TAB" => Loc::getMessage("SALE_EBAY_TAB_META"), "TITLE" => Loc::getMessage("SALE_EBAY_TAB_META_DESCR"))); $tabControl = new CAdminTabControl("tabControl", $arTabs); $policy = null; $APPLICATION->SetTitle(Loc::getMessage("SALE_EBAY_TITLE")); \Bitrix\Main\Page\Asset::getInstance()->addJs("/bitrix/js/sale/ebay_admin.js", true); require_once $DOCUMENT_ROOT . BX_ROOT . "/modules/main/include/prolog_admin_after.php"; if (strlen($errorMsg) > 0) { CAdminMessage::ShowMessage(array("MESSAGE" => $errorMsg, "TYPE" => "ERROR")); } if ($bSaved) { CAdminMessage::ShowMessage(array("MESSAGE" => GetMessage("SALE_EBAY_SETTINGS_SAVED"), "TYPE" => "OK"));