(a) That's wrong. The courts do not always classify terms as either conditions or warranties. Sometimes the courts avoid this terminology and leave the terms unnamed (innominate) or treat them as 'intermediate' terms. The courts are likely to treat terms as 'innominate' if they are terms that could possibly be breached in either serious or relatively minor ways.
If there is a breach of an innominate or intermediate term, the seriousness of the breach is determined by asking whether the consequences are so serious that the plaintiff is deprived of a substantial part of the benefit for which they had contracted. If so, the breach is treated as a fundamentally important breach (equivalent to a breach of condition). Otherwise it will be treated as a less than fundamentally serious breach (equivalent to a breach of warranty).
In the present example, if the relevant terms are treated as innominate, B would have to show that the failure to deliver a high-glaze tile substantially deprived him of an intended benefit of the contract. On the facts, this seems unlikely.