O WooCommerce serve para B2B?
Muitas lojas WooCommerce em Portugal começaram por vender ao consumidor final e foram acumulando clientes empresariais: tabelas de preços próprias, pagamento por transferência a 30 dias, um desconto preso a um perfil de utilizador. A certa altura surge a pergunta sobre se é preciso passar para o Shopify Plus ou para o Adobe Commerce. Muitas vezes não é, desde que o WooCommerce receba as peças B2B que lhe faltam.
Chamo-me Mariusz Szatkowski e desenvolvo para WordPress desde 2006. Faço este trabalho pessoalmente: leio o código, configuro preços e integrações e testo tudo em staging. Não tenho equipa nem subcontratados, por isso o código que recebe foi escrito por mim. Se o aspeto da loja mudar, o design e os wireframes são seus e eu implemento-os.
A venda para vários países da UE com o balcão único OSS está tratada na revisão do WooCommerce face às regras da UE.
Como configurar preços B2B por cliente no WooCommerce
De origem, o WooCommerce tem preço normal e preço promocional. Preços por grupo, descontos por quantidade e preços acordados têm de ser acrescentados. O caminho certo depende de quantas tabelas de preços existem de facto.
| Situação | Um plugin chega | É preciso código próprio |
|---|---|---|
| Até três grupos de clientes com desconto fixo | sim | não |
| Preços acordados diferentes para cada cliente | não | sim |
| Descontos por quantidade combinados com grupos e moedas | raramente | quase sempre |
| Preços lidos em tempo real do ERP | não | sim |
| Catálogo visível só para um cliente | em parte | sim |
Os preços por cliente ficam numa tabela própria, alimentada pelo ERP e indexada por cliente e artigo. Milhares de preços em wp_postmeta tornam lenta qualquer consulta de produto.
Pedido de orçamento em vez de preço no carrinho
No comércio por grosso, alguns artigos só têm preço depois de alguém o calcular: quantidades à palete, produção por medida, transporte. Para esses casos uso o meu próprio plugin, o Quotlet da plogins.com. Acrescenta um botão para juntar o produto a um pedido de orçamento, oculta preços, permite a visitantes sem conta montar uma lista e envia-lhe o pedido por e-mail. A versão gratuita está no diretório do WordPress.org. Para descontos por quantidade existe o Tiers, da mesma família.
Ocultar preços não tira as páginas de produto dos motores de pesquisa. Descrição, dados técnicos e fichas continuam visíveis, e o preço só aparece ao cliente empresarial com sessão iniciada.
Integração com PHC CS, PRIMAVERA e Moloni
Nas empresas de distribuição portuguesas encontro sobretudo o PHC CS, o PRIMAVERA e, nas mais pequenas, o Moloni. Cada um expõe os dados de forma diferente, por isso começo por verificar que API a sua instalação oferece e o que permite.
O que costumo sincronizar:
- stocks, em tempo real ou com intervalo fixo,
- dados de cliente: NIF, moradas de entrega, condições de pagamento, limite de crédito,
- encomendas com número de documento e estado de entrega,
- números de fatura atribuídos pelo ERP.
As chamadas ao ERP não ficam dentro do checkout. Cada encomenda entra numa fila do Action Scheduler, a mesma biblioteca com que o WooCommerce entrega webhooks e o WooCommerce Subscriptions cobra renovações. Se o ERP estiver parado para manutenção, as tarefas esperam e correm depois. Cada tarefa falhada fica no registo com o erro, para se saber que encomenda precisa de ser vista.
A fatura é emitida pelo ERP ou pelo programa de faturação que já utiliza, não pelo WooCommerce. A minha parte é que lhe chegue a encomenda completa: NIF do comprador, morada, linhas, taxas de IVA e meio de pagamento, seja transferência, referência Multibanco ou MB WAY. Os números de IVA de clientes de outros países da UE são verificados no VIES na criação da conta.
Encomendas B2B recorrentes com WooCommerce Subscriptions
Na distribuição, uma subscrição é mais vezes a entrega mensal de consumíveis ou uma licença anual do que um acesso premium. O WooCommerce Subscriptions tem dois modos de renovação. No automático, o gateway cobra sozinho e, se o pagamento falhar, o sistema volta a tentar segundo regras: por predefinição, cinco tentativas ao longo de uma semana. No manual, o cliente recebe uma encomenda de renovação e paga com qualquer meio ativo na loja, incluindo transferência.
Os clientes que pagam por transferência a 30 dias ficam fora das novas tentativas automáticas. Para esses configuro lembretes e estados de modo que uma renovação em atraso chegue à contabilidade e a subscrição não caduque no primeiro dia de atraso.
Aprovação de encomendas e limites de crédito
Nenhuma das duas existe no núcleo do WooCommerce. Se forem precisas, desenvolvo-as:
- aprovação de encomendas: um comprador prepara o carrinho, a encomenda recebe um estado próprio e espera até alguém com permissão a aprovar ou rejeitar a partir de uma ligação no e-mail ou do painel,
- limite de crédito: a conta mostra o crédito disponível, a loja bloqueia encomendas acima do limite e o valor é atualizado a partir do ERP quando um recebimento é lançado,
- centros de custo: cada encomenda pode ser associada a uma filial ou a um projeto.
O que muda o HPOS numa loja B2B?
O HPOS (High-Performance Order Storage) tira as encomendas de wp_posts e wp_postmeta e guarda-as em quatro tabelas próprias: wc_orders, wc_order_addresses, wc_order_operational_data e wc_orders_meta. Desde o WooCommerce 8.2, lançado em outubro de 2023, é a predefinição nas instalações novas. Lojas mais antigas guardam muitas vezes as encomendas na tabela de artigos, ao lado de produtos e páginas.
Antes da mudança, verifico cada plugin e todo o código próprio. O código compatível carrega encomendas com wc_get_order(), altera metadados através do objeto da encomenda e grava com save(), e o plugin declara a compatibilidade com FeaturesUtil::declare_compatibility. As consultas diretas a wp_postmeta são reescritas. Depois ativo o modo de compatibilidade, em que o WooCommerce mantém sincronizadas as tabelas antigas e as novas, e só torno o HPOS a fonte principal quando ambas coincidem.
Otimizar a base de dados evita a mudança de plataforma?
Antes de pagar uma migração, vale a pena olhar para a base de dados. Em lojas B2B encontro habitualmente:
- uma tabela
wp_optionscheia de linhas de carregamento automático deixadas por plugins removidos há anos, - metadados de encomendas de extensões que já não existem,
- consultas de plugins e do tema executadas uma vez por variação,
- encomendas ainda em
wp_postmetaporque ninguém ativou o HPOS.
Mudar de plataforma faz sentido quando precisa de um marketplace com muitos vendedores, quando o fornecedor do ERP só oferece um conector certificado para outra plataforma, ou quando um teste de carga sobre uma cópia da loja mostra que o WooCommerce não aguenta num servidor razoável. Nesse caso deixo por escrito quanto custa migrar os dados e o que acontece aos seus URL.
Testes e entrega
Cada alteração é testada em staging com uma cópia dos dados sem informação pessoal:
- o percurso de compra para cada grupo de clientes, ou seja, se cada cliente vê o seu preço e as suas condições,
- uma encomenda exatamente no limite de um desconto por quantidade,
- o comportamento da loja quando o ERP não responde,
- pagamentos em modo de teste do gateway.
O código fica num repositório Git privado. Com cada alteração recebe uma nota escrita sobre o que mudou e como verificar. Trabalho por e-mail e em documentos, para que as decisões fiquem registadas. Antes de ter acesso a uma loja com dados de clientes, assinamos um contrato de subcontratação nos termos do artigo 28.º do RGPD. Faturo como empresa polaca com número de IVA europeu PL7393037445, com autoliquidação, e o contrato rege-se pela lei polaca.
Serviços relacionados
- Programador WooCommerce: desenvolvimento contínuo na sua loja.
- Acelerar o WordPress: o trabalho de desempenho de que um checkout estável depende.
- Otimização GEO e LLMO: como a sua loja aparece em pesquisas com IA.
Descreva a sua loja e o que precisa de mudar no formulário de contacto. Respondo com perguntas sobre o âmbito e depois envio um orçamento com os pressupostos em que assenta.




