Separate Customers from WordPress Users to allow B2B e-commerce.
At the moment customer data is tied directly to a WordPress user. While this works for simple shops, it is a problem for B2B e-commerce where a customer may be a company with many representatives who are all buying in the name of the same company - but have different user accounts.
Customer-based pricing (enabled by the Dynamic Pricing extension) should then be based on the customer entity, not on user or user roles. This means that when a user is representing a customer, all of the customers pricing is applied to them. Also, if multiple users make purchases in the name of one customer, we can gather statistics based on the customer, not on user.
Also, one person could be part of one or more companies (customers).
It would really boost Woocommerce's B2B e-commerce-ability if Customer was a separate entity from the user account.
In the case of simple customers, this would mean creating 1 Customer and 1 User. The user would have access to the customer entity.
A more advanced use case would be when users and customers have many to many relationships.
Carl-Fredrik Herö commented
There is a great discussion here https://github.com/woothemes/woocommerce/issues/4064 about the problem and the solution.
Split customers into a new post type called "Customers" and refactor the code to use the class "WooCustomer" to a greater extend.
Richard Manship commented
I'll second this one...we're going through a lot of hoops to use this as a B2B e-commerce tool. It would be a great differentiator because I've not found a cost effective B2B e-commerce tool anywhere. Even Magento requires a lot of add-ons to pull this off....