Motivation: wikipedia claims, that in algebraic topology, there holds: $\pi_1(X\times Y)\cong\pi_1(X)\times\pi_1(Y)$ and $\pi_1(X\vee Y)\cong\pi_1(X)\ast\pi_1(Y)$. A similar statement holds for arbitrary products and one-point unions, making the (covariant) fundamental group functor $\pi_1:\mathrm{TOP}^0 / h-\mathrm{TOP}^0\rightarrow GRPS$ preserve products and coproducts.
I'm guessing the same holds for the functors $\pi_k$ (homotopy groups), $H_k$ (homology groups)?
Definitions:
Examples: In the category of sets, groups, rings, $R$-modules, vector spaces, topological spaces,etc, the product is the cartesian product. In the category of sets and topological spaces, the coproduct is the disjoint union/topological sum. In the category of groups, the coproduct is the free product $\ast$. In the abelian group / $R$-modules / vector spaces category, it is the direct sum $\oplus$. In the topological pointed spaces category, it is the one-point union $\vee$.
Question: I would very much like to prove this in a general way, so I'd like to know the following: Theorem???: Suppose $F:\underline{A}\rightarrow\underline{B}$ is a covariant / contravariant functor. What are some (reasonably general) sufficient conditions on $F,\underline{A},\underline{B}$, that make $F$ send (products to products and coproducts to coproducts) / (products to coproducts and coproducts to products ), i.e. $F \text{ covariant }\Rightarrow F(\prod_{i\in I}A_i)=\prod_{i\in I}F(A_i)\text{ and }F(\coprod_{i\in I}A_i)=\coprod_{i\in I}F(A_i);$ $F \text{ contravariant }\Rightarrow F(\prod_{i\in I}A_i)=\coprod_{i\in I}F(A_i)\text{ and }F(\coprod_{i\in I}A_i)=\prod_{i\in I}F(A_i)?$
The sufficient conditions that I'm looking for are primarily intended for important standard functors, such as $\pi_k$, $H_k$, $H^k$, tangent and cotangent bundle functor, ... so that I can prove the results in one sweep.
Counterexample: In the category of division rings / fields, we have $\mathbb{Z}_2\times\mathbb{Z}_2 = \mathbb{Z}_2$, thus the forgetful functor to the category of sets doesn't preserve products.