/** * Load already specified item level gift messages. * * @return \Magento\GiftMessage\Api\Data\MessageInterface[]|null */ protected function getItemLevelGiftMessages() { $itemMessages = []; $cartId = $this->checkoutSession->getQuoteId(); $items = $this->checkoutSession->getQuote()->getAllVisibleItems(); foreach ($items as $item) { $itemId = $item->getId(); $message = $this->itemRepository->get($cartId, $itemId); if ($message) { $itemMessages[$itemId] = $message->getData(); } } return count($itemMessages) === 0 ? null : $itemMessages; }
/** * Load already specified item level gift messages and related configuration. * * @return \Magento\GiftMessage\Api\Data\MessageInterface[]|null */ protected function getItemLevelGiftMessages() { $itemLevelConfig = []; $quote = $this->checkoutSession->getQuote(); foreach ($quote->getAllVisibleItems() as $item) { $itemId = $item->getId(); $itemLevelConfig[$itemId] = []; $isMessageAvailable = $item->getProduct()->getGiftMessageAvailable(); // use gift message product setting if it is available if ($isMessageAvailable !== null) { $itemLevelConfig[$itemId]['is_available'] = (bool) $isMessageAvailable; } $message = $this->itemRepository->get($quote->getId(), $itemId); if ($message) { $itemLevelConfig[$itemId]['message'] = $message->getData(); } } return count($itemLevelConfig) === 0 ? null : $itemLevelConfig; }