get(InvoiceService::class); $invoice = $invoiceService->prepareInvoice($order); $invoice->setIncrementId('100000002'); $invoice->register(); $items = $invoice->getAllItems(); $item = array_pop($items); $item->setQty(1); $invoice->setTotalQty(1); $items = $order->getAllItems(); /** @var \Magento\Sales\Api\Data\OrderItemInterface $item */ $item = array_pop($items); $item->setQtyInvoiced(1); $invoice->collectTotals(); /** @var InvoiceRepositoryInterface $invoiceRepository */ $invoiceRepository = $objectManager->get(InvoiceRepositoryInterface::class); $invoice = $invoiceRepository->save($invoice); /** @var TransactionRepositoryInterface $transactionRepository */ $transactionRepository = $objectManager->get(TransactionRepositoryInterface::class); $transaction = $transactionRepository->create(); $transaction->setTxnType('capture'); $transaction->setPaymentId($order->getPayment()->getEntityId()); $transaction->setOrderId($order->getEntityId()); $transactionRepository->save($transaction);