Пример #1
0
 /**
  * @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;
 }
Пример #2
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * 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);
 }