Quando un cliente ci chiede "posso vendere sia a privati che ad aziende sullo stesso sito", la risposta tecnica onesta è: sì, ma bisogna decidere prima una cosa che sembra banale e non lo è — chi decide, in ogni singola richiesta, se quel visitatore è un B2C o un B2B? Non è una domanda con una risposta sola, perché dipende da cosa il cliente vuole vendere e a chi.
Nel modulo eshop questa decisione si chiama canale, ed è configurabile per sito con tre modalità: solo B2C, solo B2B, oppure entrambi. Quando è "entrambi" — il caso interessante — la risoluzione segue un ordine preciso. Prima si guarda se il cliente è loggato ed è già stato approvato come account B2B: in quel caso il canale è deciso, senza altre domande. Se non lo è, si guarda se esiste un override esplicito in un cookie — il classico interruttore "Privato / Azienda" che si vede in alto su certi eshop, quando è abilitato. Solo se nessuna delle due condizioni si applica si ricade sul canale di default configurato per il sito.
Il canale scelto non cambia solo un'etichetta: cambia se i prezzi sono mostrati con o senza IVA, se sono visibili del tutto prima del login (dipende da una regola per sito: sempre visibili, visibili solo da loggati, o visibili solo per clienti B2B già approvati), se il checkout ospite è permesso su quel canale specifico. Un cliente può decidere che il B2C ha il checkout ospite aperto a tutti, mentre il B2B richiede sempre un account approvato — magari perché dietro c'è una verifica di partita IVA o un listino riservato che non ha senso mostrare a un visitatore qualunque.
La parte che vale la pena sottolineare è che tutto questo vive nella configurazione del sito, non nel codice del tema. Un progetto che nasce B2C puro e a un certo punto vuole aprire un canale B2B non ha bisogno di un secondo eshop, di un secondo dominio, di una migrazione di catalogo. Ha bisogno di cambiare una manciata di parametri e, se serve, di un processo di approvazione per i nuovi account aziendali — che è comunque una decisione di business, non un problema tecnico.