/**
  * Save gift message for items of order
  *
  * @param \Magento\Sales\Api\Data\OrderInterface $order
  * @return \Magento\Sales\Api\Data\OrderInterface
  */
 protected function saveOrderItemGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order)
 {
     if (null !== $order->getItems()) {
         /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
         foreach ($order->getItems() as $orderItem) {
             if (null !== $orderItem->getExtensionAttributes() && null !== $orderItem->getExtensionAttributes()->getGiftMessage()) {
                 /* @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */
                 $giftMessage = $orderItem->getExtensionAttributes()->getGiftMessage();
                 try {
                     $this->giftMessageOrderItemRepository->save($order->getEntityId(), $orderItem->getItemId(), $giftMessage);
                 } catch (\Exception $e) {
                     throw new CouldNotSaveException(__('Could not add gift message to order\'s item: "%1"', $e->getMessage()), $e);
                 }
             }
         }
     }
     return $order;
 }
Example #2
0
 /**
  * Get gift message for items of order
  *
  * @param \Magento\Sales\Api\Data\OrderInterface $order
  * @return \Magento\Sales\Api\Data\OrderInterface
  */
 protected function getOrderItemGiftMessage(\Magento\Sales\Api\Data\OrderInterface $order)
 {
     if (null !== $order->getItems()) {
         /** @var \Magento\Sales\Api\Data\OrderItemInterface $orderItem */
         foreach ($order->getItems() as $orderItem) {
             if ($orderItem->getExtensionAttributes() && $orderItem->getExtensionAttributes()->getGiftMessage()) {
                 continue;
             }
             try {
                 /* @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */
                 $giftMessage = $this->giftMessageOrderItemRepository->get($order->getEntityId(), $orderItem->getItemId());
             } catch (NoSuchEntityException $e) {
                 continue;
             }
             /** @var \Magento\Sales\Api\Data\OrderItemExtension $orderItemExtension */
             $orderItemExtension = $this->orderItemExtensionFactory->create();
             $orderItemExtension->setGiftMessage($giftMessage);
             $orderItem->setExtensionAttributes($orderItemExtension);
         }
     }
     return $order;
 }