/** * Set gift messages from additional data. * * @param \Magento\Quote\Model\Cart\TotalsAdditionalDataProcessor $subject * @param TotalsAdditionalDataInterface $additionalData * @param int $cartId * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function beforeProcess(TotalsAdditionalDataProcessor $subject, TotalsAdditionalDataInterface $additionalData, $cartId) { $giftMessages = $additionalData->getExtensionAttributes()->getGiftMessages(); foreach ($giftMessages as $giftMessage) { /** @var \Magento\GiftMessage\Api\Data\MessageInterface $giftMessage */ $entityType = $giftMessage->getExtensionAttributes()->getEntityType(); $entityId = $giftMessage->getExtensionAttributes()->getEntityId(); if ($entityType === 'quote') { $this->cartRepository->save($cartId, $giftMessage); } elseif ($entityType === 'item') { $this->itemRepositoryInterface->save($cartId, $giftMessage, $entityId); } } }
/** * Load already specified quote level gift message. * * @return \Magento\GiftMessage\Api\Data\MessageInterface|null */ protected function getOrderLevelGiftMessages() { $cartId = $this->checkoutSession->getQuoteId(); return $this->cartRepository->get($cartId); }