Добавляем скрытые свойства заказа со значениями по умолчанию

Задача: создать свойство заказа «Источник заказа». Свойство должно быть типа Select со значением по умолчанию «Корзина».

В Битриксе для скрытия свойства заказа от пользователя существует галочка — «Служебное», а для выставления какого либо значения по умолчанию для поля типа SELECT достаточно вписать его код в поле «Значение по умолчанию».

Все бы ничего, но значение по умолчанию для служебных полей выставляется только когда заказ создается через администативную панель, но не пользователем через публичную часть сайта.

Чтобы значение по умолчанию выставлялось в обоих случаях и не было видно пользователю, создадим группу свойств заказа с названием «Скрытые» и снимем галочку с поля «Служебное» и добавим в шаблон оформления заказа условие «Если поле из группы скрытых то делаем невидимым».

Шаблон по умолчанию bitrix/components/bitrix/sale.order.ajax/templates/.default/props.php

<?foreach($arSource as $arProperties)
{
   if('Скрытые' == $arProperties["GROUP_NAME"]){$isHidden = true;}else{ $isHidden = false;}

   if($arProperties["SHOW_GROUP_NAME"] == "Y")
   {
      ?>
      <tr <?if($isHidden) echo 'style="display: none;"'?>>
         <td colspan="2">
            <b><?= $arProperties["GROUP_NAME"] ?></b>
         </td>
      </tr>
      <?
   }
   ?>
   <tr <?if($isHidden) echo 'style="display: none;"'?>>
...
...
?>

Таким образом можно создать любое скрытое поле со значением по умолчанию для любой группы пользователей.

Оставить комментарий

Комментарии (3)

  1. Mark 05.05.2016 Ответить
    Забавный финт ушами (:
    Спасибо, пригодилось.
  2. ОО 06.04.2017 Ответить
    Спасибо! Долго мучился не мог понять почему служебно поле не отображается..
  3. Михаил 21.03.2018 Ответить
    При создании нового свойства заказа в административной части, у всех заказов меняется дата изменения. После этого все заказы снова прогружаются в 1с. Как создать новое свойство заказов, что бы у всех заказов не изменялась дата создания.