First and foremost, there is a basic principle concerning the discharging of Zakat which is very important to bear in mind, and that is the principle of Tamleek.
Tamleek entails that, in order for the Zakat to be correctly discharged, the Zakat funds must be given unconditionally into the complete ownership and possession of a person or persons who are genuinely eligible in terms of Shari’ah for receiving Zakat. Once such persons take possession of the Zakat funds and their ownership therein is established, the Zakat duty of those who contributed the Zakat would be discharged. These persons (to whom Zakat had been given) now have the full right of spending and utilizing their money wherever they deem appropriate.
If this principle of Tamleek is found wanting and is sidestepped, the Zakat of the contributors will not be discharged.
Based on this principle, we proceed to answer your specific query: – Since you have not discharged your Zakat as yet, Tamleek is not found. This means that your buying these grocery items for the poor with the intention of zakat does not yet make it zakat. Zakat is only discharged and counted as zakat once it reaches the hands of the poor. Your acquisition of the toys was prior to giving the groceries to the poor; hence, you may keep the toys. The same ruling would apply to buying bulk and receiving specials. The main calculation to consider when giving out these goods and groceries in zakat is that if you are owing R3000 for example then the amount that you paid for the groceries that you are giving out should be R3000 for your zakat to be discharged.