Find all functions $f: \mathbb{R} \rightarrow \mathbb{R}$ that satisfy

$$
f(x) f(y)=f(x+y)+x y
$$

for all $x, y \in \mathbb{R}$.
First note that the function $f(x)=0$ for all $x \in \mathbb{R}$ does not satisfy the condition. Therefore, there must be an $x_{0} \in \mathbb{R}$ for which $f\left(x_{0}\right) \neq 0$. Now substitute $x=x_{0}$ and $y=0$: $f\left(x_{0}\right) f(0)=f\left(x_{0}\right)$. We can divide by $f\left(x_{0}\right)$, which gives us: $f(0)=1$. Now substitute $x=1$ and $y=-1$: $f(1) f(-1)=f(0)-1=1-1=0$. Therefore, $f(1)=0$ or $f(-1)=0$.
We consider the cases separately. First, assume that $f(1)=0$ and substitute $x=1$: $0=f(1) f(y)=f(1+y)+y$ for all $y \in \mathbb{R}$, so $f(1+y)=-y$ for all $y \in \mathbb{R}$. Substituting $y=t-1$, we get $f(t)=-t+1$ for all $t \in \mathbb{R}$. This is our first candidate solution. Now assume that $f(-1)=0$ and substitute $x=-1$: $0=f(-1) f(y)=f(-1+y)-y$ for all $y \in \mathbb{R}$, so $f(-1+y)=y$ for all $y \in \mathbb{R}$. Substituting $y=t+1$, we get $f(t)=t+1$ for all $t \in \mathbb{R}$. This is our second candidate solution.
We have considered all cases, so there are two possible solutions. We check both. First, assume that $f(t)=-t+1$ for all $t \in \mathbb{R}$, then for all $x, y \in \mathbb{R}$:

$$
f(x) f(y)=(-x+1)(-y+1)=x y-x-y+1=(-x-y+1)+x y=f(x+y)+x y
$$

Now assume that $f(t)=t+1$ for all $t \in \mathbb{R}$, then for all $x, y \in \mathbb{R}$:

$$
f(x) f(y)=(x+1)(y+1)=x y+x+y+1=(x+y+1)+x y=f(x+y)+x y
$$

Both solutions satisfy the condition.