예제 #1
0
 /**
  * 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);
         }
     }
 }