Where to do saving of custom additional order related data?

Where is the best/recommended place to put custom logic that stores additional data on the order (or deliveries, payments, etc.) after an order is placed by the customer, regardless of what payment method or provider is used?

In the Accelerator, for orders placed using Klarna, the Litium.Accelerator.Mvc.App_Start.KlarnaPaymentConfigV3.ValidateCheckoutOrder() method is used; the comments on the method states "you may save additional order info into the order, during validations. following is a sample which saves the date of birth as additional order info..

Apart from the fact that the method only should be used for validating an order this of course only works for orders placed through Klarna the comment also states that "The method need to return within 3 seconds to be able to cancel placed an order at Klarna.. This would suggest that this is not the best place to have a lot of additional processing, right? So is there another better/recommended place?

Litium version: 7.4.2

There are AdditionalOrderInfo, AdditionalPaymentInfo and AdditionalDeliveryInfo entities that you may use.

Yeah, I meant where/when in the checkout flow is the best place to put the ‘store stuff in the additional data’ logic.

When they are available, update the order carrier in the session with them. If you are using Klarna, makesure you call the Klarna update method, it will get saved to the temporary order carrier kept in disc.