еще не сделано save() и нет номера заказа.
Делаю
$propertyCollection = $order->getPropertyCollection();
$phoneProp = $propertyCollection->getPhone();
$phoneProp->setValue('123456789');
И со всеми свойствами, которые помечены как IS_* (телефон, имя, адрес, емейл) такой способ работает.
А вот с остальными свойствами - не могу понять, как.
Есть свойство с CODE=COMMENT
Делаю
$comment = $propertyCollection->getAttribute('COMMENT');
$comment->setValue('123456');
получаю
Call to a member function setValue() on null (0)
Метод getAttribute() "возвращает свойство по его атрибуту". Что такое атрибут?
Печалько. Или я чего-то не вижу. Не нашел ни в исходниках класса PropertyValueCollectionBase ничего похожего на "получить свойство из коллекции по CODE". Вообще по чему-либо кроме галок "это телефон", "это емейл" и т.п. Так что получился какой-то костыль... foreach($propertyCollection as $item) { $property = $item->getPropertyObject(); $arProperties[$property->getField('CODE')] = $item; } $arProperties['COMMENT']->setValue('my comment');
Хороший вопрос, если узнаете отпишите в чате, я чтобы получить свойство переьираю в цикле всю коллекцию свойств и сравниваю с нужным CODE
Обсуждают сегодня