• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/tradingplatform/ebay/helper.php
  • Класс: BitrixSaleTradingPlatformEbayHelper
  • Вызов: Helper::onSaleDeductOrder
static function onSaleDeductOrder($orderId, $val)
{
	if($val != "Y")
		return false;

	$order = CSaleOrder::GetByID($orderId);

	if($order["XML_ID"] == '' || mb_substr($order["XML_ID"], 0, 4) != Ebay::TRADING_PLATFORM_CODE)
		return false;

	$ebayOrderId = mb_substr($order["XML_ID"], mb_strlen(Ebay::TRADING_PLATFORM_CODE) + 1);

	$shipmentInfo =	array();
	$trackingInfo = array();

	if($order["TRACKING_NUMBER"] <> '')
	{
		$ebayDelivery = "Other";
		$ebay = BitrixSaleTradingPlatformEbayEbay::getInstance();
		$settings = $ebay->getSettings();

		if(isset($settings[$order["LID"]]["DELIVERY"]) && is_array($settings[$order["LID"]]["DELIVERY"]))
		{
			foreach($settings[$order["LID"]]["DELIVERY"] as $eDelivery => $bDelivery)
			{
				if($bDelivery == $order["DELIVERY_ID"])
				{
					$ebayDelivery = $eDelivery;
					break;
				}
			}
		}

		$trackingInfo = array(
			"SERVICE" => $ebayDelivery,
			"NUMBER" => $order["TRACKING_NUMBER"]
		);
	}

	$orderLineItemIds = array();

	$dbBasket = CSaleBasket::GetList(
		array(),
		array("ORDER_ID" => $orderId),
		false,
		false,
		array("XML_ID")
	);

	while ($arBasket = $dbBasket->GetNext())
		$orderLineItemIds[] = $arBasket["XML_ID"];

	foreach($orderLineItemIds as $orderLineItemId)
	{
		$tmpShipmentInfo =	array(
			"ORDER_ID" => $ebayOrderId,
			"ORDER_LINE_ITEM_ID" => $orderLineItemId,
		);

		if(!empty($trackingInfo))
			$tmpShipmentInfo["TRACKING"] = $trackingInfo;

		$shipmentInfo[] = $tmpShipmentInfo;
	}

	$ebayFeed = Manager::createFeed("SHIPMENT", $order["LID"]);
	$ebayFeed->setSourceData($shipmentInfo);
	$ebayFeed->exchangeData("");

	return true;
}