} } elseif ($isCopyingOrderOperation) { /** @var \Bitrix\Sale\Order $originalOrder */ $originalOrder = Bitrix\Sale\Order::load($ID); if ($originalOrder) { $order = \Bitrix\Sale\Order::create($originalOrder->getSiteId(), $originalOrder->getUserId(), $originalOrder->getCurrency()); $order->setPersonTypeId($originalOrder->getPersonTypeId()); $originalPropCollection = $originalOrder->getPropertyCollection(); $properties['PROPERTIES'] = array(); $files = array(); /** @var \Bitrix\Sale\PropertyValue $prop */ foreach ($originalPropCollection as $prop) { if ($prop->getField('TYPE') == 'FILE') { $propValue = $prop->getValue(); if ($propValue) { $files[] = CAllFile::MakeFileArray($propValue['ID']); $properties['PROPERTIES'][$prop->getPropertyId()] = $propValue['ID']; } } else { $properties['PROPERTIES'][$prop->getPropertyId()] = $prop->getValue(); } } $propCollection = $order->getPropertyCollection(); $propCollection->setValuesFromPost($properties, $files); $originalBasket = $originalOrder->getBasket(); $originalBasketItems = $originalBasket->getBasketItems(); $basket = \Bitrix\Sale\Basket::create($originalOrder->getSiteId(), $originalBasket->getFUserId()); /** @var \Bitrix\Sale\BasketItem $originalBasketItem */ foreach ($originalBasketItems as $originalBasketItem) { $item = $basket->createItem($originalBasketItem->getField("MODULE"), $originalBasketItem->getProductId()); $item->setFields(array_intersect_key($originalBasketItem->getFields()->getValues(), array_flip($originalBasketItem->getAvailableFields())));