В документации не описан замечательный метод
тут /bitrix/modules/sale/general/order_props.php
Метод этот удобен тем, что он находит код значения свойства заказа и либо добавляет его либо обновляет. Это насчет примечания из доки "если при оформлении заказа не были заполнены какие-то свойства, то эти свойства обновить потом не получится, т.к. их нет в базе данных (незаполненные свойства не имеют пустых значений в базе)."
Так же он сохраняет файлы в системе.
Основное что нужно :
array $orderId - id заказа
array $personTypeId - id типа плательщика
array $arOrderProps - массив значений свойств заказа
Свойство тип "Файл" у заказов может быть одиночным или множественным.
Значения свойства в заказе хранит id зарегистрированных в системе файлов.
Массив для одиночного файла $arOrderProps = Array('ID_СВОЙСТВА_ЗАКАЗА'=>array($arFile));
Для множественного $arOrderProps = Array('ID_СВОЙСТВА_ЗАКАЗА'=>array($arFileN, $arFileN1, $arFileN2, ...));
Простое добавление файла:
Для добавления нового файла в множественный тип, надо передать id ранее сохраненных файлов через ключ file_id иначе они не сохраняться.
CSaleOrderProps::DoSaveOrderProps($orderId, $personTypeId, $arOrderProps, &$arErrors, $paysystemId = 0, $deliveryId = "") |
тут /bitrix/modules/sale/general/order_props.php
Метод этот удобен тем, что он находит код значения свойства заказа и либо добавляет его либо обновляет. Это насчет примечания из доки "если при оформлении заказа не были заполнены какие-то свойства, то эти свойства обновить потом не получится, т.к. их нет в базе данных (незаполненные свойства не имеют пустых значений в базе)."
Так же он сохраняет файлы в системе.
Основное что нужно :
array $orderId - id заказа
array $personTypeId - id типа плательщика
array $arOrderProps - массив значений свойств заказа
Свойство тип "Файл" у заказов может быть одиночным или множественным.
Значения свойства в заказе хранит id зарегистрированных в системе файлов.
Массив для одиночного файла $arOrderProps = Array('ID_СВОЙСТВА_ЗАКАЗА'=>array($arFile));
Для множественного $arOrderProps = Array('ID_СВОЙСТВА_ЗАКАЗА'=>array($arFileN, $arFileN1, $arFileN2, ...));
Простое добавление файла:
$arFile = CFile::MakeFileArray(...); $arFile['description'] = 'Счет';//описание для файла, т.к. в свойстве заказа не храниться |
CSaleOrderProps::DoSaveOrderProps('ID_ЗАКАЗА', 'ID_ТИП_ПЛАТЕЛЬЩИКА', Array('ID_СВОЙСТВА_ЗАКАЗА'=>array($arFile))); |
Для добавления нового файла в множественный тип, надо передать id ранее сохраненных файлов через ключ file_id иначе они не сохраняться.
$arFile = CFile::MakeFileArray(...); $oldFile = array('file_id'=>'ID_ЗАРЕГИСТРИРОВАННОГО_ФАЙЛА'); $arOrderProps = Array('ID_СВОЙСТВА_ЗАКАЗА'=>array($oldFile, $oldFileN $arFileN, ...)); |