/** * @param \Magento\Sales\Model\Convert\Quote $subject * @param Closure $proceed * @param \Magento\Sales\Model\Quote\Item\AbstractItem $item * @return Item * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundItemToOrderItem(\Magento\Sales\Model\Convert\Quote $subject, Closure $proceed, \Magento\Sales\Model\Quote\Item\AbstractItem $item) { /** @var $orderItem Item */ $orderItem = $proceed($item); $isAvailable = $this->_helper->isMessagesAvailable('item', $item, $item->getStoreId()); $orderItem->setGiftMessageId($item->getGiftMessageId()); $orderItem->setGiftMessageAvailable($isAvailable); return $orderItem; }
/** * Duplicates giftmessage from order item to quote item on import or reorder * * @param \Magento\Framework\Event\Observer $observer * @return $this */ public function salesEventOrderItemToQuoteItem($observer) { /** @var $orderItem \Magento\Sales\Model\Order\Item */ $orderItem = $observer->getEvent()->getOrderItem(); // Do not import giftmessage data if order is reordered $order = $orderItem->getOrder(); if ($order && $order->getReordered()) { return $this; } $isAvailable = $this->_giftMessageMessage->isMessagesAvailable('order_item', $orderItem, $orderItem->getStoreId()); if (!$isAvailable) { return $this; } /** @var $quoteItem \Magento\Sales\Model\Quote\Item */ $quoteItem = $observer->getEvent()->getQuoteItem(); if ($giftMessageId = $orderItem->getGiftMessageId()) { $giftMessage = $this->_messageFactory->create()->load($giftMessageId)->setId(null)->save(); $quoteItem->setGiftMessageId($giftMessage->getId()); } return $this; }
/** * Check availability of giftmessages for specified entity item * * @param \Magento\Framework\Object $item * @return bool */ public function isItemMessagesAvailable($item) { $type = substr($this->getType(), 0, 5) == 'multi' ? 'address_item' : 'item'; return $this->_giftMessageMessage->isMessagesAvailable($type, $item); }