If I remember correctly ~てある suggests that a state remains in a certain condition without stating the doer of said verb and it is used with intransitive verbs. For example, 窓が開いてある。(The window was left opened.) On the other hand ~ておく is used when you want to convey that you will be doing a certain verb in advanced/for preparation. For example, 忘れないうちに、メモを書いておきます。(I’ll write it down before I forget.) Hope that helps