I have a scenario in which I am adding multiple transaction for an order, I tried to use below code but records is adding in sales_payment_transaction
but not in sales_order_payment
as its updating the existing record, I need to add multiple rows in both the table with different transaction_id
and amount
.
$payment = $order->getPayment();
$payment->setLastTransId($last_trans_id);
$payment->setTransactionId($last_trans_id);
$payment->setAdditionalInformation(
[MagentoSalesModelOrderPaymentTransaction::RAW_DETAILS => (array) $paymentData]
);
$formatedPrice = $order->getBaseCurrency()->formatTxt(
$amount
);
$messageD = __('The authorized amount is %1.', $formatedPrice);
$trans = $objectManager->create("MagentoSalesModelOrderPaymentTransactionBuilderInterface");
$transaction = $trans->setPayment($payment)
->setOrder($order)
->setTransactionId($last_trans_id)
->setAdditionalInformation(
[MagentoSalesModelOrderPaymentTransaction::RAW_DETAILS => (array) $paymentData]
)
->setFailSafe(true)
->build(MagentoSalesModelOrderPaymentTransaction::TYPE_CAPTURE);
$payment->addTransactionCommentsToOrder(
$transaction,
$messageD
);
$payment->setParentTransactionId(null);
$payment->save();
$order->save();