The differences between these words are subtle. You could use each of them depending on context.
If you talk about the basic needs of life, "die Bedürfnisse" would be the best translation. Of course, like in the English phrase, what is actually understood by that can wildly differ, but it does cover needs, not only desires. It especially covers the basic needs like food and shelter which I wouldn't call "needs we desire". On the other hand, it is widely used to refer to all kinds of needs. ("Der Zoom-Sprachkurs deckt mein Bedürfnis nach besonders viel Übung im aktiven Sprechen.")
Much like with the English word "need", the singular "Bedürfnis" only refers to a single need.
"Bedarf", on the other hand, is a more concrete need in a situation. I'd say that, while "Bedürfnisse" tends more to "necessities", "Bedarf" tends more to "demand" and is more bound to a time than Bedürfnis. If you'd like to also express that one should only buy when the need arises, then "Bedarf" is the better word. As you probably know, "Bedarf" is used in singular, there is no plural for general use. (There is a plural "Bedarfe", but it is only used in special professional contexts like budgeting.)
"Anforderungen" only fits in this context if you're talking about business. I would probably not use it as a translation for "needs", but as a translation for "requirements". It implies someone or some goal you'd like to achieve that is requiring something, for example a customer (or your business model) demand that you buy some machinery or hire a certain role. If you mean the sentence "one should buy as per the needs" in a business sense, "Anforderungen" could be appropriate.