/** * 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; }
/** * 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; }