How find the function $f(f(x)+xy)=f(x)+xf(y),\forall x,y\in R$ Find all function $f:R\to R$ and such
$$f(f(x)+xy)=f(x)+xf(y),\forall x,y\in R$$
Let $x=y=0$,then $$f(f(0))=f(0)$$

Partial attempt. Similar to ones above. However, I add some other properties.

We begin noticing that if we take $x = y = 0$ then $f(f(0)) = f(0) = a$. Now, taking $y=0$ and $x = a$, we get
$$
f(f(a)) = f(a) + a^2 \implies a = a + a^2 \implies a = f(0) = 0.
$$
Notice that if $x \neq 0$ we can choose $y$ to make some interesting cancellation. Since
$$
f(x) + xy = x \quad \iff y = \frac{x - f(x)}{x}.
$$
Using this value for $y$, we obtain
$$
x \cdot f\Big(\frac{x - f(x)}{x}\Big) = 0, \quad \forall x \neq 0
$$
and since $x \neq 0$ we have $f\Big(\frac{x - f(x)}{x}\Big)$ is identically zero. Let $Z = f^{-1}(0)$; we know that $Z \ni 0$. For any $x_0 \in Z$, putting $x = x_0$ on the original equation:
$$
f(x_0 y) = x_0 f(y), \quad \forall y \in \mathbb{R}.
$$
Here, we consider some cases of possible $Z$.
If $Z = \{0\}$. Then, we have $1 - \frac{f(x)}{x} = 0$, for every $x \neq 0$ and then we have $f(x) = x$.  
If $|Z| \geq 2$. Then $Z$ has a non-zero element, $x_0$. Taking $y = x/x_0$ gives:
$$
f(x) = x_0 f(x/x_0)
$$
and putting $x = x_0$ we get
$$
0 = f(x_0) = x_0 \cdot f(1),
$$
implying that $f(1) = 0$ and thus $1 \in Z$. Also, $Z$ has some nice algebraic properties:


*

*if $z_1, z_2 \in Z$ are non-zero then $z_1 \cdot z_2 \in Z$; just taking $x_0 = z_1$ and $y = z_2$ above.

*if $z \in Z$ is non-zero, $z^{-1} \in Z$.
If $Z = \{0, 1\}$. We conclude that $f(x) = x$ for $x \neq 1$ and $f(1) = 0$. But this is not possible, since $x = -1$ and $y=-2$ on original equation reaches a contradiction.
If $Z$ has more elements than $0, 1$.
Then, by the algebraic properties $z^n \in Z$ for every integer $n$.

Notice that if $z \in Z$ and $z \neq 0$, then $z \notin \mathrm{Im} f$. Otherwise, taking $x$ with $f(x) = z$ and $y = 0$ would give
$$
0 = f(z) = z 
$$
