The correct option is D bought
The tense of a sentence denotes a time, whether it is the time now (present), time then (past) or the time to come (future). The verb of a sentence has most to do with the tense. In the given sentence, we need to fill in a word that determines the correct tense. The action in the given sentence took place in the past "two weeks ago", hence we need a verb in the simple past tense. 'Bought' is in the simple past tense, hence option A is correct. 'Buy' is in the simple present tense, whereas the action has been completed in the past, hence option B is incorrect. 'Have bought' is in the present perfect tense, referring to an action that has just completed, but "two weeks ago" is not a time that is even close to the present, hence option C is incorrect. 'Will buy' is in the future tense, referring to an action that is yet to come, whereas "two weeks ago" refers to an action in the past, hence option D is incorrect.