dmtrbskkv
@dmtrbskkv
Кодим и декодим, а иногда кино смотрим

Почему не сохраняется кастумное поле заказа?

При использовании этого кода не сохраняется информация о кастумном поле
<?php
        $order = Order::create($siteId, $USER->isAuthorized() ? $USER->GetID() : null);
        $order->setField('CURRENCY', $currencyCode);

        $basket = Basket::loadItemsForFUser(
            Fuser::getId(),
            Context::getCurrent()->getSite()
        );
        $order->setBasket($basket);

        $collection = $order->getPropertyCollection(); // Получаем массив с дополнительными свойствами заказа
        $propertyValue = $collection->createItem([
            'ID' => 1,
            'NAME' => 'Новое свойство',
            'TYPE' => 'STRING',
            'CODE' => 'NEW_PROP',
        ]);
        $propertyValue->setField('VALUE', 'Свойство_3');
        $collection->addItem($propertyValue);


        // Сохраняем
        $result  = $order->save();

        $orderId = $order->getId();


Само поле проверяется по $orderId:
<?php
 $order = Order::load($orderId);
 var_dump($order->getPropertyCollection()->toArray());
 exit();
  • Вопрос задан
  • 34 просмотра
Пригласить эксперта
Ответы на вопрос 1
@tgarl
Вы какую-то жесть хотите сделать, хорошо что не сохраняется. Свойства заказа это постоянные сущности, а не какие-то описания заказа, потому они и заводятся отдельно, а потом в заказе просто заполняются значениями. А по вашему коду вы хотите чтобы каждый заказ плодил новую постоянную сущность: 100 заказов - 100 новых свойств, а 1000?

Как в предыдущем вашем вопросе, так и тут напишу: если вам через модуль нужно создать свойство, так и создайте его там, сохраните id его в опшинс модуля и проверяйте/работайте только с ним.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы