• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/tradingplatform/helper.php
  • Класс: BitrixSaleTradingPlatformHelper
  • Вызов: Helper::notifyNewOrder
public function notifyNewOrder($newOrderId, $siteId, $buyerEmail = "", $buyerFio = "")
{
	if ($newOrderId == '')
		throw new ArgumentNullException("newOrderId");

	if ($siteId == '')
		throw new ArgumentNullException("siteId");

	global $DB;

	$strOrderList = "";
	$baseLangCurrency = CSaleLang::GetLangCurrency($siteId);
	$orderNew = CSaleOrder::GetByID($newOrderId);
	$orderNew["BASKET_ITEMS"] = array();

	$dbBasketTmp = CSaleBasket::GetList(
		array("SET_PARENT_ID" => "DESC", "TYPE" => "DESC", "NAME" => "ASC"),
		array("ORDER_ID" => $newOrderId),
		false,
		false,
		array(
			"ID", "PRICE", "QUANTITY", "NAME",
		)
	);

	while ($arBasketTmp = $dbBasketTmp->GetNext())
		$orderNew["BASKET_ITEMS"][] = $arBasketTmp;

	$orderNew["BASKET_ITEMS"] = getMeasures($orderNew["BASKET_ITEMS"]);

	foreach ($orderNew["BASKET_ITEMS"] as $val)
	{
		if (CSaleBasketHelper::isSetItem($val))
			continue;

		$measure = (isset($val["MEASURE_TEXT"])) ? $val["MEASURE_TEXT"] : GetMessage("SALE_YMH_SHT");
		$strOrderList .= $val["NAME"] . " - " . $val["QUANTITY"] . " " . $measure . " x " . SaleFormatCurrency($val["PRICE"], $baseLangCurrency);
		$strOrderList .= "
"; } //send mail $arFields = array( "ORDER_ID" => $orderNew["ACCOUNT_NUMBER"], "ORDER_DATE" => Date($DB->DateFormatToPHP(CLang::GetDateFormat("SHORT", $siteId))), "ORDER_USER" => $buyerFio, "PRICE" => SaleFormatCurrency($orderNew["PRICE"], $baseLangCurrency), "BCC" => COption::GetOptionString("sale", "order_email", "order@" . $_SERVER['SERVER_NAME']), "EMAIL_TO" => array("PAYER_NAME" => $buyerFio, "USER_EMAIL" => $buyerEmail), "ORDER_LIST" => $strOrderList, "SALE_EMAIL" => COption::GetOptionString("sale", "order_email", "order@" . $_SERVER['SERVER_NAME']), "DELIVERY_PRICE" => $orderNew["DELIVERY_PRICE"], ); $eventName = "SALE_NEW_ORDER"; $bSend = true; foreach (GetModuleEvents("sale", "OnOrderNewSendEmail", true) as $arEvent) if (ExecuteModuleEventEx($arEvent, array($newOrderId, &$eventName, &$arFields)) === false) $bSend = false; $emailSendRes = false; if ($bSend) { $event = new CEvent; $emailSendRes = $event->Send($eventName, $siteId, $arFields, "N"); } $pushSendResult = CSaleMobileOrderPush::send("ORDER_CREATED", array("ORDER" => $orderNew)); return $emailSendRes && $pushSendResult; }