You will need to utilise the Transactional Messaging API, and call it from the system where your customer places an order. This will give you superior performance (latency between API call and actual send will be minimal).
As you probably will have an arbitrary number of order lines, I will suggest you take a look at BuildRowsetFromXML function, and pass these orderlines as XML in the REST payload.
I assumed you would send order confirmation emails, hence I didn't expect to validate against whether or not this person is an actual subscriber. If you need an easy way of avoiding sending to unsubscribed customers, you should maintain the status in All Subscribers, and use Commercial send classification, which will automatically prevent the email from going out to anyone with status of Unsubscribed in All Subscribers list.
Alternatively, if you don't maintain the status in All Subscribers, you could use the traditional journey with API entry event (as suggested by Gortonington) and use contact filter to check the status in a data extension within your contact model.
We have little ability to help you with more detailed design, with the little information provided by you.