In my opinion batch determination should be at delivery level because you need to pick exactly the same batch you have in your SO.
For this, create the delivery with reference to the SO, it will adopt the batch.
As for picking, SAP will create the TO for the right batch. That means that your picker needs to check the batch or you need not to mix batches in the same bin.
I hope I have answered your question