B2B customers have very different needs and are typically in completely different mindsets and buying modes that B2C customers. To maximize effectiveness and ease of use, you need to separate your B2B and B2C websites. Attempting to have a B2B and B2C website on the same eCommerce installation is a way too common problem that we encounter.
Search is important in both B2B and B2C, but in many cases B2B buyers are much less likely to browse through long category listings of products. It is important to provide advanced search capabilities that allow them to easily hone in on the product they are seeking.
Negotiated pricing, tiered pricing, and promotions (or lack thereof) are commonly very different between B2B and B2C websites. If you attempt to accomplish both B2B and B2C pricing needs in the same installation, you often find yourself in a logistical nightmare from a management of data perspective. It is also a very common cause of performance issues on eCommerce websites, and slow performance costs you sales.
Quick order, re-order capabilities, account approvals are very common in B2B eCommerce, but not so common in B2C. You want to remove friction in the buying process and to make it as simple as it can be. With that in mind, you don’t want features on your B2C site that those customers would never utilize because they are aimed at B2B customers and vice-versa. Separating them into eCommerce installations designed and aimed at each feature set may cost you more up-front, but will save you trouble managing data and allow you more flexibility to be aggressive in your marketing and developing of new features and promotions for each channel of your business.