• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/notify.php
  • Класс: BitrixSaleNotify
  • Вызов: Notify::getAllFieldsFromOrder
static function getAllFieldsFromOrder(Order $order)
{
	$result = new Result();

	$paymentSystemId = false;
	$deliveryId = false;

	/** @var PaymentCollection $paymentCollection */
	if ($paymentCollection = $order->getPaymentCollection())
	{
		/** @var Payment $payment */
		if ($payment = $paymentCollection->rewind())
		{
			$paymentSystemId = $payment->getPaymentSystemId();
		}
	}

	/** @var ShipmentCollection $shipe */
	if ($shipmentCollection = $order->getShipmentCollection())
	{
		/** @var Shipment $shipment */
		foreach ($shipmentCollection as $shipment)
		{
			if ($shipment->getDeliveryId() > 0)
			{
				$deliveryId = $shipment->getDeliveryId();
				break;
			}
		}
	}

	$fields = array(
		"SITE_ID" => $order->getSiteId(),
		"LID" => $order->getSiteId(),
		"PERSON_TYPE_ID" => $order->getPersonTypeId(),
		"PRICE" => $order->getPrice(),
		"CURRENCY" => $order->getCurrency(),
		"USER_ID" => $order->getUserId(),
		"PAY_SYSTEM_ID" => $paymentSystemId,
		"PRICE_DELIVERY" => $order->getDeliveryPrice(),
		"DELIVERY_ID" => $deliveryId,
		"DISCOUNT_VALUE" => $order->getDiscountPrice(),
		"TAX_VALUE" => $order->getTaxValue(),
		"TRACKING_NUMBER" => $order->getField('TRACKING_NUMBER'),
		"PAYED" => $order->getField('PAYED'),
		"CANCELED" => $order->getField('CANCELED'),
		"STATUS_ID" => $order->getField('STATUS_ID'),
		"RESERVED" => $order->getField('RESERVED'),
	);

	$orderFields = static::getOrderFields($order);
	if (is_array($orderFields))
	{
		$orderFields = $fields + $orderFields;
		$orderFields = static::convertDateFieldsToOldFormat($orderFields);
	}

	$result->setData(array(
						 'FIELDS' => $fields,
						 'ORDER_FIELDS' => $orderFields,
					 ));

	return $result;
}