I'm not clear whether customers will be comfortable paying in advance. There's zero way to recover your money, unlike credit cards or bank transactions.
BTC in and of itself has no answer for the situation of not trusting the merchant. However, merchants typically do business with many customers, don't need anonymity, and have an interest in maintaining good reputations. None of these conditions obtain for the customer in the general case, and this asymmetry explains why all merchants that take BTC are paid before delivery.