%PDF- %PDF-
Direktori : /home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/ebay/feed/ |
Current File : //home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/ebay/feed/manager.php |
<?php namespace Bitrix\Sale\TradingPlatform\Ebay\Feed; use \Bitrix\Main\SystemException; use \Bitrix\Sale\TradingPlatform\Timer; use \Bitrix\Sale\TradingPlatform\Logger; use \Bitrix\Sale\TradingPlatform\Ebay\Ebay; class Manager { public static function createSftpQueue($feedType, $siteId, Timer $timer = null) { $params = array( "SITE_ID" => $siteId, "TIMER" => $timer ); switch($feedType) { case 'PRODUCT': $params["FEED_TYPE"] = "product"; $params["COVER_TAG"] = "ListingArray"; $params["SCHEMA_FILE_NAME"] = "Product.xsd"; break; case 'INVENTORY': $params["FEED_TYPE"] = "inventory"; $params["COVER_TAG"] = "InventoryArray"; $params["SCHEMA_FILE_NAME"] = "Inventory.xsd"; break; case 'ORDER_ACK': $params["FEED_TYPE"] = "order-ack"; $params["COVER_TAG"] = "OrderAckArray"; $params["SCHEMA_FILE_NAME"] = "OrderAck.xsd"; break; case 'SHIPMENT': $params["FEED_TYPE"] = "shipment"; $params["COVER_TAG"] = "ShipmentArray"; $params["SCHEMA_FILE_NAME"] = "Shipment.xsd"; break; case 'IMAGE': $params["FEED_TYPE"] = "image"; $params["COVER_TAG"] = "Images"; $params["SCHEMA_FILE_NAME"] = "Image.xsd"; break; default: throw new SystemException("Unknown type of feed \"".$feedType."\". ".__METHOD__); break; } return new Data\Processors\SftpQueue($params); } /** * @param $feedType * @param $siteId * @param int $timeLimit * @return Feed|bool * @throws SystemException */ public static function createFeed($feedType, $siteId, $timeLimit = 0) { $timer = new Timer($timeLimit); $feepParams = array( "TIMER" => new $timer, "SITE_ID" => $siteId ); switch($feedType) { case 'PRODUCT': $feepParams["DATA_SOURCE"] = new Data\Sources\Product(array("SITE_ID" => $siteId)); $feepParams["DATA_CONVERTER"] = new Data\Converters\Product(array("SITE_ID" => $siteId)); $feepParams["DATA_PROCESSOR"] = self::createSftpQueue($feedType, $siteId, $timer); break; case 'INVENTORY': $feepParams["DATA_SOURCE"] = new Data\Sources\Product(array("SITE_ID" => $siteId)); $feepParams["DATA_CONVERTER"] = new Data\Converters\Inventory(array("SITE_ID" => $siteId)); $feepParams["DATA_PROCESSOR"] = self::createSftpQueue($feedType, $siteId, $timer); break; case 'ORDER': $feepParams["DATA_SOURCE"] = new Data\Sources\Order(array( "FEED_TYPE" => "order", "SCHEMA_FILE_NAME" => "Order.xsd", "SITE_ID" => $siteId )); $feepParams["DATA_CONVERTER"] = new Data\Converters\Order; $feepParams["DATA_PROCESSOR"] = new Data\Processors\Order(array("SITE_ID" => $siteId)); break; case 'ORDER_ACK': $feepParams["DATA_SOURCE"] = new Data\Sources\SimpleArray; $feepParams["DATA_CONVERTER"] = new Data\Converters\OrderAck; $feepParams["DATA_PROCESSOR"] = self::createSftpQueue($feedType, $siteId, $timer); break; case 'SHIPMENT': $feepParams["DATA_SOURCE"] = new Data\Sources\SimpleArray; $feepParams["DATA_CONVERTER"] = new Data\Converters\Shipment; $feepParams["DATA_PROCESSOR"] = self::createSftpQueue($feedType, $siteId, $timer); break; case 'IMAGE': $feepParams["DATA_SOURCE"] = new Data\Sources\Product(array("SITE_ID" => $siteId)); $feepParams["DATA_CONVERTER"] = new Data\Converters\Image(array("SITE_ID" => $siteId)); $feepParams["DATA_PROCESSOR"] = self::createSftpQueue($feedType, $siteId, $timer); break; case 'PROCESS_RESULT': $feepParams["DATA_SOURCE"] = new Data\Sources\Results(array( "SITE_ID" => $siteId, "REMOTE_PATH_TMPL" => "/store/##FEED_TYPE##/log/##UPLOAD_DATE##", "FILTER" => array( "PROCESSING_REQUEST_ID" => "" ) )); $feepParams["DATA_CONVERTER"] = new Data\Converters\ProcessResult; $feepParams["DATA_PROCESSOR"] = new Data\Processors\ProcessResult; break; case 'RESULTS': $feepParams["DATA_SOURCE"] = new Data\Sources\Results(array( "SITE_ID" => $siteId, "REMOTE_PATH_TMPL" => "/store/##FEED_TYPE##/output/##UPLOAD_DATE##", "FILTER" => array( "RESULTS" => "" ) )); $feepParams["DATA_CONVERTER"] = new Data\Converters\Results; $feepParams["DATA_PROCESSOR"] = new Data\Processors\Results(array("SITE_ID" => $siteId));; break; default: throw new SystemException("Unknown type of feed \"".$feedType."\". ".__METHOD__); break; } $feed = new Feed($feepParams); Ebay::log(Logger::LOG_LEVEL_DEBUG, "EBAY_FEED_CREATED", $feedType, "Feed: ".$feedType.", site: ".$siteId, $siteId); return $feed; } }