- Модуль: 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;
}