Questions & Answers about Im Zoo haben wir viele Tiere gesehen.
Why is the verb haben placed before the subject wir?
This is due to the German verb-second (V2) rule. Because the location phrase Im Zoo takes up the first position in the sentence, the conjugated verb haben must come second. This pushes the subject wir into the third position.
Why do we use Im instead of In den for 'at the'?
Im is a contraction of in dem. In is a two-way preposition. Here, it takes the dative case because it describes a fixed location (answering 'where?'), not a movement towards a destination. Since Zoo is a masculine noun (der Zoo), the article becomes dative (dem).
Why is the word gesehen all the way at the end?
German sentences often form a 'bracket' around the extra information. In the conversational past tense (Perfekt), the helping verb haben takes the second position, and the past participle gesehen gets pushed to the very end of the sentence.
Could I use the simple past tense and say sahen instead of haben ... gesehen?
You could, and grammatically Im Zoo sahen wir viele Tiere is completely correct. However, in everyday spoken German, the perfect tense (haben ... gesehen) is used almost exclusively for past events. The simple past is mostly found in books, news, or formal writing.