3namespace Bitrix\Sale\TradingPlatform\Ebay;
6use Bitrix\Main\IO\Directory;
8use Bitrix\Main\SystemException;
9use Bitrix\Main\Localization\Loc;
10use Bitrix\Sale\TradingPlatform\Logger;
11use Bitrix\Sale\TradingPlatform\Sftp;
12use Bitrix\Main\ArgumentNullException;
13use Bitrix\Sale\TradingPlatform\Ebay\Feed\Manager;
15Loc::loadMessages(__FILE__);
33 if(!extension_loaded(
'ssh2'))
34 $result->addError(
new Error(Loc::getMessage(
"SALE_EBAY_HLP_CHECK_ERROR_SSH2")));
36 if(!extension_loaded(
'SimpleXML'))
37 $result->addError(
new Error(Loc::getMessage(
"SALE_EBAY_HLP_CHECK_ERROR_SIMPLEXML")));
47 return $_SERVER[
"DOCUMENT_ROOT"].
"/bitrix/tradingplatforms/ebay/sftp";
59 if(!$directory->isExists())
62 foreach(
array(
"product",
"inventory",
"image",
"order-ack",
"shipment") as $feedType)
64 $feedDir =
new Directory($sftpDir.
"/".$feedType);
66 if(!$feedDir->isExists())
69 foreach(
array(
"xml",
"tmp",
"zip") as $stage)
71 $stageDir =
new Directory($sftpDir.
"/".$feedType.
"/".$stage);
73 if(!$stageDir->isExists())
89 if(!($dbEvent->Fetch()))
95 $obEventType = new \CEventType;
96 $obEventType->Add(
array(
97 "EVENT_NAME" =>
"SALE_EBAY_ERROR",
98 "NAME" => Loc::getMessage(
"SALE_EBAY_HLP_EVNT_TYPE_ERROR"),
101 #ERROR_TYPE# - ".Loc::getMessage(
"SALE_EBAY_HLP_EVNT_TYPE_ERROR_TYPE").
"
102 #ERROR_DETAILS# - ".Loc::getMessage(
"SALE_EBAY_HLP_EVNT_TYPE_ERROR_DETAIL").
"
103 #EMAIL_FROM# - ".Loc::getMessage(
"SALE_EBAY_HLP_EVNT_TYPE_FROM").
"
104 #EMAIL_TO# - ".Loc::getMessage(
"SALE_EBAY_HLP_EVNT_TYPE_TO").
"
105 #BCC# - ".Loc::getMessage(
"SALE_EBAY_HLP_EVNT_TYPE_BCC")
109 $sites = \CSite::GetList(
'',
'', Array(
"LANGUAGE_ID"=>$lid));
116 $arr[
"ACTIVE"] =
"Y";
117 $arr[
"EVENT_NAME"] =
"SALE_EBAY_ERROR";
119 $arr[
"EMAIL_FROM"] =
"#DEFAULT_EMAIL_FROM#";
120 $arr[
"EMAIL_TO"] =
"#EMAIL_TO#";
121 $arr[
"BCC"] =
"#BCC#";
122 $arr[
"SUBJECT"] =
"#SITE_NAME# ".Loc::getMessage(
"SALE_EBAY_EVNT_MSG_SBUJ']").
".";
123 $arr[
"BODY_TYPE"] =
"text";
125 Loc::getMessage(
"SALE_EBAY_EVNT_MSG_INFO_SITE").
" #SITE_NAME#.\n\n".
126 Loc::getMessage(
"SALE_EBAY_EVNT_MSG").
":\n\n".
130 $obTemplate = new \CEventMessage;
131 $obTemplate->Add(
$arr);
142 public static function getEbayOrderStatuses()
158 public static function onSaleDeductOrder(
$orderId,
$val)
170 $shipmentInfo =
array();
171 $trackingInfo =
array();
173 if(
$order[
"TRACKING_NUMBER"] <>
'')
175 $ebayDelivery =
"Other";
181 foreach(
$settings[
$order[
"LID"]][
"DELIVERY"] as $eDelivery => $bDelivery)
183 if($bDelivery ==
$order[
"DELIVERY_ID"])
185 $ebayDelivery = $eDelivery;
191 $trackingInfo =
array(
192 "SERVICE" => $ebayDelivery,
193 "NUMBER" =>
$order[
"TRACKING_NUMBER"]
197 $orderLineItemIds =
array();
208 $orderLineItemIds[] = $arBasket[
"XML_ID"];
210 foreach($orderLineItemIds as $orderLineItemId)
212 $tmpShipmentInfo =
array(
213 "ORDER_ID" => $ebayOrderId,
214 "ORDER_LINE_ITEM_ID" => $orderLineItemId,
217 if(!empty($trackingInfo))
218 $tmpShipmentInfo[
"TRACKING"] = $trackingInfo;
220 $shipmentInfo[] = $tmpShipmentInfo;
223 $ebayFeed = Manager::createFeed(
"SHIPMENT",
$order[
"LID"]);
224 $ebayFeed->setSourceData($shipmentInfo);
225 $ebayFeed->exchangeData(
"");
235 public static function OnEventLogGetAuditTypes()
240 "EBAY_FEED_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_FEED_ERROR"),
241 "EBAY_AGENT_FEED_STARTED" => Loc::getMessage(
"SALE_EBAY_AT_AGENT_FEED_STARTED"),
242 "EBAY_FEED_CREATED" => Loc::getMessage(
"SALE_EBAY_AT_FEED_CREATED"),
243 "EBAY_DATA_PROCESSOR_ORDER_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_ERROR"),
244 "EBAY_DATA_PROCESSOR_ORDER_PROCESSED" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_PROCESSED"),
245 "EBAY_DATA_PROCESSOR_SFTPQUEUE_SEND" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_SFTPQUEUE_SEND"),
246 "EBAY_DATA_SOURCE_ORDERFILE_RECEIVED" => Loc::getMessage(
"SALE_EBAY_AT_DATA_SOURCE_ORDERFILE_RECEIVED"),
247 "EBAY_DATA_PROCESSOR_ORDER_CREATED" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_CREATED"),
248 "EBAY_DATA_PROCESSOR_ORDER_PROCESSING" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_PROCESSING"),
249 "EBAY_DATA_SOURCE_RESULTS_RECEIVED" => Loc::getMessage(
"SALE_EBAY_AT_DATA_SOURCE_RESULTS_RECEIVED"),
250 "EBAY_DATA_SOURCE_RESULTS_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_DATA_SOURCE_RESULTS_ERROR"),
251 "EBAY_AGENT_ADDING_RESULT" => Loc::getMessage(
"SALE_EBAY_AT_AGENT_ADDING_RESULT"),
252 "EBAY_FEED_RESULTS_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_FEED_RESULTS_ERROR"),
253 "EBAY_POLICY_REQUEST_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_POLICY_REQUEST_ERROR"),
254 "EBAY_POLICY_REQUEST_HTTP_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_POLICY_REQUEST_HTTP_ERROR"),
255 "EBAY_DATA_PROCESSOR_ORDER_SKIPPED" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_SKIPPED"),
256 "EBAY_DATA_PROCESSOR_ORDER_ALREADY_EXIST" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_ALREADY_EXIST"),
257 "EBAY_DATA_PROCESSOR_ORDER_PROCESSING_TRANSACTION_ITEM_NOT_FOUND" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_PROCESSING_TR_NOT_FOUND"),
258 "EBAY_DATA_PROCESSOR_ORDER_PROCESSING_TRANSACTION_ITEM_SKU_NOT_FOUND" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_PROCESSING_TRANSACTION_ITEM_SKU_NOT_FOUND"),
259 "EBAY_DATA_PROCESSOR_ORDER_TRANSACTION_ITEM_CREATE_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_TRANSACTION_ITEM_CREATE_ERROR"),
260 "EBAY_DATA_PROCESSOR_ORDER_CREATE_ERROR_SET_BASKET" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_CREATE_ERROR_SET_BASKET"),
261 "EBAY_DATA_PROCESSOR_ORDER_CANCELING_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_CANCELING_ERROR"),
262 "EBAY_DATA_PROCESSOR_ORDER_DEDUCTIOING_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_DEDUCTIOING_ERROR"),
263 "EBAY_DATA_PROCESSOR_ORDER_CHANGE_STATUS_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_CHANGE_STATUS_ERROR"),
264 "EBAY_DATA_PROCESSOR_ORDER_SAVE_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_SAVE_ERROR"),
265 "EBAY_DATA_PROCESSOR_ORDER_CORR_SAVE_ERROR" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_ORDER_CORR_SAVE_ERROR"),
266 "EBAY_DATA_PROCESSOR_SFTPQUEUE_FLUSHING" => Loc::getMessage(
"SALE_EBAY_AT_DATA_PROCESSOR_SFTPQUEUE_FLUSHING"),
267 "EBAY_SFTP_TOKEN_EXP" => Loc::getMessage(
"SALE_EBAY_AT_SFTP_TOKEN_EXP"),
270 array_walk(
$result,
function(&$value,
$key, $prefix) {
284 public static function getSftp(
$siteId)
287 throw new ArgumentNullException(
"siteId");
289 static $sftp =
array();
293 $ebay = \Bitrix\Sale\TradingPlatform\Ebay\Ebay::getInstance();
302 throw new SystemException(Loc::getMessage(
'SALE_EBAY_AT_SFTP_TOKEN_EXP_MESSAGE'));
327 public static function getEbayCategoryVariations($ebayCategoryId,
$siteId, $localInfoOnly =
false)
331 $categoriesVarResult = CategoryVariationTable::getList(
array(
332 'select' =>
array(
'ID',
'NAME',
'REQUIRED'),
333 'order' =>
array(
'NAME' =>
'ASC'),
334 'filter' =>
array(
"=CATEGORY_ID" => $ebayCategoryId),
335 'group' =>
array(
'NAME')
338 while(
$var = $categoriesVarResult->fetch())
341 if(empty(
$result) && !$localInfoOnly)
343 $categories = new \Bitrix\Sale\TradingPlatform\Ebay\Api\Categories(
$siteId);
344 $rfrCount = $categories->refreshVariationsTableData(
array($ebayCategoryId));
346 if(intval($rfrCount) > 0)
347 $result = self::getEbayCategoryVariations($ebayCategoryId,
$siteId,
true);
static GetList($by='id', $order='desc', $arFilter=[])
static GetList($by="sort", $order="asc", $arFilter=[])
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)
$_SERVER["DOCUMENT_ROOT"]
if(!defined('SITE_ID')) $lang
if(empty($signedUserToken)) $key
</p ></td >< td valign=top style='border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 2.0pt 0cm 2.0pt;height:9.0pt'>< p class=Normal align=center style='margin:0cm;margin-bottom:.0001pt;text-align:center;line-height:normal'>< a name=ТекстовоеПоле54 ></a ><?=($taxRate > count( $arTaxList) > 0) ? $taxRate."%"
if(CSalePaySystemAction::GetParamValue("DATE_PAY_BEFORE", false)) $dbBasket