I encountered this sentence when I was learning another language. I have never used such a sentence in English nor seen one, but it seems it exists.
What idea does this sentence trying to convey? What time should we relate to?
In English we normally call this construction the future perfect. It’s a construction that represents, if you would, the very opposite of the more familiar and rather more frequently used future-in-the-past time shown in the second clause here:
The opposite of a time representing the future in the past is necessarily one representing the past in the future, like this:
The first sentence takes place in the past (they said) but it references a time frame that was still in the future of that past-time reference frame. It had not yet happened then, and we don’t know whether it has happened now or even whether it for certain shall.
The second sentence’s first clause is grammatically in the present tense (she gets) but it nonetheless represents a future time (later this afternoon). Its second clause’s verb is a perfect infinitive have rained used with the modal verb will, here in its epistemic to indicate a future time.
So the perfect aspect makes it a completed one, and the will marker moves that completion into the future reference frame.
Sometimes will be means “probably is”, and will have been means “probably was”.
The sentence She will have bought a new phone yesterday means that she “surely must” have done so yesterday. This is not the normal past-in-the-future the way the future perfect normally works out to meaning so much as it is a probable state of some past event; a probability statement, if you would.
Yesterday specifies when the action was completed, and here the modal verb will means mere likelihood not actual futurity.
Consider this simple example where will means probability not futurity:
Jack: There’s someone at the door!
Jill: That will be Billy.
That means it must be, or “has to” be Billy. It’s about a probable present time, not about a future time — despite that will.
When you want to to express that same thing in the past, you use a perfect construction; you don’t just change will to would because that just weakens the probability.
Jack: There’s someone at the door!
Jill: Would that be Billy?
By backshifting the will into would, you have made it less probable. You haven’t changed it to a past time. For that, you need a perfect construction to show that it has already been completed:
Jack: Somebody called yesterday but didn’t leave his name.
Jill: That will have been Billy.
That means it must have been Billy who called yesterday. It’s still the future perfect construction, but this time it doesn’t refer to something that hasn’t happened yet. It refers to something that has very probably already happened — yesterday.
English’s cousin languages and its slightly more distant European relatives also have the same concept of a past in the future; they just call these different things, but most form them in essentially the same way.
Using the simple future to mean the probable present (or non-past) and using the future perfect to mean the probable past is not a use of the future which is peculiar to English alone; Spanish and Portuguese can also use their own futures, including the future perfect, to indicate probability.
For example, if you in Spanish/Portuguese say Será un/um amigo, even though será is the literal future tense meaning “will be”, it can instead mean that it’s “very likely/probably” a friend, or it “must” (epistemic sense) or “has to” be a friend.
This shows how even languages with actual future tense morphological inflections (unlike English) can still use these future forms with a non-future sense: a probable present situation.
Once you move further away from English than its Germanic and Romance cousins, you begin to see the same sentiment of inferred probability expressed differently. The Balkan languages have such things as the “renarrative mood” and the “inferential mood”.
So English modal uses of (inferred) probability like...
...would in some of those languages be translated using special inferential moods that their verbs can take on.
All these languages, including English, are more flexible than a simple one-to-one mapping between verb tenses and times referenced would allow for.
This is a rather peculiar construction, and I don't think the other answers have quite got to the point. Here is an example, without the future perfect:
Kid: Dad, when is granny coming?
Dad: She'll be on the train by now.
It means something like "It is very likely that she is on the train by now", or "It is to be expected that she is on the train by now." It is a perfectly sound construction, but I would not expect to see it in formal written English.
So your sentence just means "It is very likely that she bought a new cellphone yesterday", or "I assume that she bought a new cellphone yesterday."
We should also pay attention to the basic meaning of the modal "will", that of "volition" (willingness, intention and prediction based on it). My girlfriend had been long craving after a mobile phone and yesterday she told me she was heading to a shop. Now I am almost sure she's bought it. The possibility comes up to 90%. "She will have bought the phone yesterday" conveys the idea of strong probability based on the girl's intention to by a cellphone. Thus the situation itself brings down to us her plans to buy a phone.
There are two components to this time expression.
The first one is obvious: she is expected to have bought the phone yesterday.
As for the second one, she is expected to have the phone in her possession—for whatever usage is the subtext of this communication—for some future or present or even past requirement.
In other words, the speaker might have been asked if the person in question will have the phone currently or in the future, or for something between now and the time she should have purchased the phone. (Example of the latter usage: "Does she have her new phone yet? I tried to call her an hour ago but she appeared to be offline.")