public function execute(\Magento\Framework\Event\Observer $observer) { /* Get base amount for partial payment from quote totals */ /** @var \Magento\Quote\Model\Quote $quote */ $quote = $observer->getData(self::DATA_QUOTE); $basePartialAmount = $quote->getShippingAddress()->getData(\Praxigento\Wallet\Model\Quote\Address\Total\Partial::CODE_BASE_TOTAL); if ($basePartialAmount) { /* save amounts into order registry */ $partialAmount = $quote->getShippingAddress()->getData(\Praxigento\Wallet\Model\Quote\Address\Total\Partial::CODE_TOTAL); /** @var \Magento\Sales\Model\Order $order */ $order = $observer->getData(self::DATA_ORDER); $orderId = $order->getId(); $data = new \Praxigento\Wallet\Data\Entity\Partial\Sale(); $data->setPartialAmount($partialAmount); $data->setBasePartialAmount($basePartialAmount); $data->setSaleOrderRef($orderId); $this->_repoPartialSale->create($data); $this->_logger->debug("New partial payment by eWallet is registered for order #{$orderId} " . "(base: '{$basePartialAmount}', amount: '{$partialAmount}')."); } }