Документация для разработчиков

Add

Метод устарел. Рекомендуется использовать методы класса \Bitrix\Sale\Order.

int
CSaleOrder::Add(
  array arFields
);

Метод добавляет новый заказ с параметрами из массива arFields. Перед добавлением заказа вызываются обработчики события OnBeforeOrderAdd модуля магазина, а после добавления - обработчики события OnOrderAdd модуля магазина. Статический метод.

С версии продукта 15.0.0 рекомендуется вместо этого метода использовать методы ядра D7. Пример.

Параметры вызова

ПараметрОписание
arFields Ассоциативный массив параметров заказа, ключами в котором являются названия параметров заказа, а значениями - новые значения.
Допустимые ключи:
  • LID - код сайта, на котором сделан заказ;
  • PERSON_TYPE_ID - тип плательщика, к которому принадлежит посетитель, сделавший заказ (заказчик);
  • PAYED - флаг (Y/N) оплачен ли заказ;
  • DATE_PAYED - дата оплаты заказа;
  • EMP_PAYED_ID - код пользователя (сотрудника магазина), который установил флаг оплаченности;
  • CANCELED - флаг (Y/N) отменён ли заказ;
  • DATE_CANCELED - дата отмены заказа;
  • EMP_CANCELED_ID - код пользователя, который установил флаг отмены заказа;
  • REASON_CANCELED - текстовое описание причины отмены заказа;
  • STATUS_ID - код статуса заказа;
  • EMP_STATUS_ID - код пользователя (сотрудника магазина), который установил текущий статус заказа;
  • PRICE_DELIVERY - стоимость доставки заказа;
  • ALLOW_DELIVERY - флаг (Y/N) разрешена ли доставка (отгрузка) заказа;
  • DATE_ALLOW_DELIVERY - дата, когда была разрешена доставка заказа;
  • EMP_ALLOW_DELIVERY_ID - код пользователя (сотрудника магазина), который разрешил доставку заказа;
  • PRICE - общая стоимость заказа;
  • CURRENCY - валюта стоимости заказа;
  • DISCOUNT_VALUE - общая величина скидки;

    Параметр не поддерживается с версии 12.5.0. Вместо него необходимо использовать правила корзины.

  • USER_ID - код пользователя заказчика;
  • PAY_SYSTEM_ID - платежная система, которой (будет) оплачен заказ;
  • DELIVERY_ID - способ (служба) доставки заказа;
  • USER_DESCRIPTION - описание заказа заказчиком;
  • ADDITIONAL_INFO - дополнительная информация по заказу;
  • COMMENTS - произвольные комментарии;
  • TAX_VALUE - общая сумма налогов;
  • AFFILIATE_ID - код аффилиата, через которого пришел посетитель;
  • STAT_GID - параметр события в статистике;
  • PS_STATUS - флаг (Y/N) статуса платежной системы - успешно ли оплачен заказ (для платежных систем, которые позволяют автоматически получать данные по проведенным через них заказам);
  • PS_STATUS_CODE - код статуса платежной системы (значение зависит от системы);
  • PS_STATUS_DESCRIPTION - описание результата работы платежной системы;
  • PS_STATUS_MESSAGE - сообщение от платежной системы;
  • PS_SUM - сумма, которая была реально оплачена через платежную систему;
  • PS_CURRENCY - валюта суммы;
  • PS_RESPONSE_DATE - дата получения статуса платежной системы;
  • SUM_PAID - сумма, которая уже была оплачена покупателем по данному счету (например, с внутреннего счета);
  • PAY_VOUCHER_NUM - номер платежного поручения;
  • PAY_VOUCHER_DATE - дата платежного поручения.
  • STORE_ID - ID пункта самовывоза из складов.

Возвращаемые значения

Возвращается код добавленного заказа или false в случае ошибки.

Примеры использования

<?
$arFields = array(
   "LID" => "en",
   "PERSON_TYPE_ID" => 1,
   "PAYED" => "N",
   "CANCELED" => "N",
   "STATUS_ID" => "N",
   "PRICE" => 279.32,
   "CURRENCY" => "USD",
   "USER_ID" => IntVal($USER->GetID()),
   "PAY_SYSTEM_ID" => 3,
   "PRICE_DELIVERY" => 11.37,
   "DELIVERY_ID" => 2,
   "DISCOUNT_VALUE" => 1.5,
   "TAX_VALUE" => 0.0,
   "USER_DESCRIPTION" => ""
);

// add Guest ID
if (CModule::IncludeModule("statistic"))
   $arFields["STAT_GID"] = CStatistic::GetEventParam();

$ORDER_ID = CSaleOrder::Add($arFields);
$ORDER_ID = IntVal($ORDER_ID);
?>
//добавляем в заказ аффилиата, если он есть
$arFields['AFFILIATE_ID'] = $APPLICATION->get_cookie("SALE_AFFILIATE");
$ORDER_ID = CSaleOrder::Add($arFields); 


Пользовательские комментарии

Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.

Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
0
Александр Ирбис
ошибки при добавлении  ловятся через

Код
if($ex = $APPLICATION->GetException()) echo $ex->GetString(); 
0
Александр Ирбис
Код
//так же можно использовать поле DATE_INSERT
$arFields['DATE_INSERT'] = '12.08.2013 08:53:37';
// или произвольный формат даты
$arFields['DATE_INSERT'] =ConvertTimeStamp(MakeTimeStamp($SC_orders[$i]['order_time'], "YYYY-MM-DD HH:MI:SS"), "FULL", "ru");
© «Битрикс», 2001-2018, «1С-Битрикс», 2018
Наверх