The volatility has also always been a problem for that to happen. I unfortunately can imagine your casual mom and pop feeling pretty uneasy when they realise they have lost 30% of their purchasing power in mere hours when trying to purchase some playdough for their grandson with BTC on amazon. Such corrections have always happened now and then.
This is the essential reason why bitcoin will never be a generalized currency. The technical difficulties add to it, but the volatility is essentially making it useless as a currency.
The *whole idea* of a currency is to be an intermediate fluidifier of economic interaction, that is:
when I want to offer good or service A and I want to obtain good or service B, deemed of equal value in the market, the direct bartering is a difficulty. So the use of a currency is that I can exchange good or service A against X currency, and I can pay for good or service B with X currency, because A and B are equal value in the market, so they should have equal price X in currency.
This requires the currency to be stable between my acquiring X when I sell A, and my paying X when buying B. X should be neutral. So X should have stable value.
Anything that is volatile, cannot be used as a currency in this respect.
A currency is also a unit of account, which is related to its value stability.
Suppose that in beginning 2017, I wrote a contract for 2 years with the maid: she cleans the house twice a week, and I'll pay her $500 a month for that. Suppose that I wrote the contract in bitcoin. At that time, 0.5 BTC per month seemed a reasonable pay, right ?
If I would have written that contract, I would pay the cleaning woman now about $5000, and in December, I paid even $9000. Very expensive cleaning !
So BTC is not useful in contracts either.
It is not a currency, because it is very volatile. And it is very volatile because it is a collectible.