/** * Collect order data and call service method to transfer PV to customer account. * * @param \Magento\Sales\Api\Data\OrderInterface $order */ public function accountPv(\Magento\Sales\Api\Data\OrderInterface $order) { $state = $order->getState(); if ($state == \Magento\Sales\Model\Order::STATE_PROCESSING) { /* transfer PV if order is paid */ $orderId = $order->getEntityId(); $itemsData = $this->_subCollector->getServiceItemsForMageSaleOrder($order); /** @var \Praxigento\Pv\Service\Sale\Request\AccountPv $req */ $req = $this->_manObj->create(\Praxigento\Pv\Service\Sale\Request\AccountPv::class); $req->setSaleOrderId($orderId); $req->setOrderItems($itemsData); $this->_callSale->accountPv($req); } }
/** * Register PV transaction for sale order. */ private function _createPvTransaction($custId, $orderId, $dateApplied) { $req = new PvSaleAccountPvRequest(); $req->setCustomerId($custId); $req->setSaleOrderId($orderId); $req->setDateApplied($dateApplied); $resp = $this->_callPvSale->accountPv($req); if ($resp->isSucceed()) { $this->_logger->debug("New PV transaction is registered for order #{$orderId} and customer #{$custId} ."); } }