I think the code responsible is in Checkout.aspx.vb (line 816-825):
If clsPlugin.GatewayName.ToLower = "po_offlinepayment" Then
strCallBodyText += GetGlobalResourceObject("Kartris", "ContentText_OrderNumber") & ": " & O_ID & vbCrLf & vbCrLf
strCallBodyText += GetGlobalResourceObject("Kartris", "FormLabel_EmailAddress") & ": " & objOrder.CustomerEmail & vbCrLf & vbCrLf
If Not String.IsNullOrEmpty(UC_KartrisLogin.UserPassword) Then
strCallBodyText += GetGlobalResourceObject("Kartris", "ContentText_CustomerCode") & ": " & UC_KartrisLogin.UserPassword
End If
Else
strCallBodyText = CStr(tblOrder.Rows(0)("O_Details"))
End If
I'm not sure why this is set differently for PO (purchase order, orders without payment where payment would be made separately offline).
Can you try replacing the whole section with just this:
strCallBodyText = CStr(tblOrder.Rows(0)("O_Details"))
This should I think treat PO orders like any other, and put full order details.
I have a feeling the intention might have been to distinguish PO orders from those where payment is actually made online, since one might not want to dispatch a PO order immediately if the expectation is for a customer to call to make payment for example. But I think it would be better served perhaps with a clear indication at the top of the mail [PO ORDER, NO PAYMENT MADE ONLINE] or similar.
Any feedback appreciated...