@Dropsen
учусь веб-разработке.

Битрикс. Почему getPropertyCollection видит не все свойства?

После обновления битрикса с 18.1 до 20.5 случилась интересная проблема:

$order = \Bitrix\Sale\Order::create(SITE_ID, $userID);

$order->setField('STATUS_ID', 'N');

$order->setPersonTypeId(2); // Физическое лицо

$propertyCollection = $order->getPropertyCollection();


$propertyCodeToId = array();

foreach($propertyCollection as $propertyValue){
    $propertyCodeToId[$propertyValue->getField('CODE')] = $propertyValue->getField('ORDER_PROPS_ID');
}

echo '<pre>'; print_r($propertyCodeToId); '</pre>';


Этот код позволяет получить свойства заказа с указанным типом плательщика.
Проблема в том, что после обновления битрикса я получаю не все свойства.
Например, свойство с NAME с ID 40.
Смотрел в базе, в админке. свойство существует, активно, принадлежит типу плательщика с ID=2 и ничем не отличается от остальных, которые отображаются
До обновления все свойства выводились

В чём может быть проблема?
  • Вопрос задан
  • 384 просмотра
Решения вопроса 1
@Dropsen Автор вопроса
учусь веб-разработке.
Решение нашёл.
Не знаю, возникнет ли у кого проблема такая, но план действий следующий:
В новых версиях битрикса может быть глюк: в списке свойств заказа => привязка свойства => службы доставки не видно выделенных элементов. Нужно убедиться, что стоит всё, что нужно.
Далее, привязка свойств и вызов товара должен быть ПОСЛЕ добавления отгрузки и $payment->setField('SUM', $order->getPrice()); (когда применяется этот метод, то произойдёт перестройка всех связанных объектов).

После этих действий все свойства стали снова доступны.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы