WooCommerce

Novo site com WooCommerce: JustGames Brasil

Acabo de finalizar um novo projeto para cliente que o resultado foi bem interessante, por isso resolvi compartilhar. Trata-se de um e-commerce feito do zero com WordPress + WooCommerce. Trata-se do site da JustGames Brasil, uma das maiores lojas de games do país.

Desde o começo o projeto teve várias demandas bem fora do comum para a maioria das plataformas, então precisaria codar bastante. Se perguntasse em qualquer grupo de desenvolvimento web no Facebook, sempre responderiam para fazer com Magento, PrestaShop e essas plataformas dedicadas. Inclusive sempre dizendo para não fazer com WooCommerce.

Como o antigo site do cliente já utilizava WooCommerce, teria que manter assim. E foi por isso mesmo que o cliente me procurou: porque eu sei que é possível fazer tudo com WooCommerce, sem limitações. A única barreira é o quanto eu sei.

Vamos ver o que foi feito:

JustGames-Games -Consoles

Essa loja tem tudo que um e-commerce default possui e mais alguns detalhes.

  • Produtos pré-venda. O cliente precisava poder comprar produtos disponíveis em estoque e pré-venda na mesma compra. Isso os plugins que encontrei para isso não fazem. Precisei adaptar. Para isso, utilizei produtos variáveis. Poderia ter criado um novo product type, mas o site já estava estruturado assim e não seria viável editar mais de 2000 produtos. Então produto novo é um tipo e pré-venda é outro tipo. Simples assim!
  • Aqui entra a segunda parte desse esquema: o cliente precisa escolher como quer receber os seus produtos: em única entrega (na data do lançamento da pré-venda) ou em partes (seja duas ou mais entregas). Aí que sofri um pouco, confesso. O WooCommerce não possui isso por padrão e é perfeitamente aceitável isso. Mas possui as opções de Package. Isso salvou tudo. O que fiz foi, quando há pré-venda no carrinho, exibir as opções para o cliente decidir como quer a entrega. Se quer receber em uma só, ok! Se quer duas vezes, o package é ativado e ele pode decidir uma modalidade de frete para cada produto.
  • O cliente tinha pedido apenas para multiplicar o custo do envio pelo número de entregas. No entanto, na minha tentativa de sempre entregar mais, pensei em uma solução um pouco mais elaborada. Fiz isso porque se eu compro um jogo apenas porque está na promoção, eu posso demorar mais para recebê-lo com frete grátis! Mas a pré-venda eu quero jogar assim que disponível, então pago Sedex. Ponto pra liberdade do consumidor.
  • Etiquetas de entrega: para imprimir isso, criei um plugin específico e até disponibilizei de graça aqui.
  • Notas do pedido: era necessário gerar uma ficha para impressão para se adequar aos fluxos de gerência. Mais um plugin que gera uma espécie de detalhamento do pedido, principalmente as pré-vendas.
  • Status personalizado: criei apenas um. “Envio parcial”. Quando há pré-venda no carrinho, o cliente informa o código de envio e o status é alterado para envio parcial. Isso é feito quantas vezes for necessário. No final, quando todos os itens forem enviados, o sistema automaticamente altera o status para concluído.
  • Como às vezes são centenas de compras na pré-venda, fica inviável abrir pedido por pedido e informar o código de rastreio e depois salvar. Então adicionei um botão com Ajax na listagem de pedidos onde é possível informar o envio de todos as pré-vendas de forma simplificada (o gerente da loja controla tudo no material que imprimiu).
  • 100% atualizável o site: o cliente possui total liberdade. Com o ACF PRO, criei opções para 100% do site, incluindo textos de notificação e mensagens.
  • E-mail para pedido cancelado: por padrão, o cliente não é notificado. Por isso, criei um custom e-mail para isso. Nele, informa-se a razão (operadora de cartão negou ou boleto venceu) e se oferece um botão personalizado para refazer a compra.
  • Carrinhos abandonados. Aí sim outro plugin.
  • Integração com Mailchimp
  • Limpeza do boleto iugu: por padrão, a iugu oferce um boleto com a fatura que é bem confuso. Utilizando a API deles, eu criei um plugin que deixa o plugin limpinho, sem distrações.
  • Múltiplos endereços: não existe nenhum plugin pago para isso. Só um grátis bem mais ou menos. Editei bastante ele para deixar com os recursos necessários para um bom funcionamento.
  • Múltiplas etapas do checkout: o cliente preenche o perfil na cobrança e, depois, um endereço. Isso na primeira compra. Nas próximas ele só precisa comprar, sem preocupações. O fluxo é: carrinho > Identificação > Entrega > Checkout. Se já está logado e com endereço publicado, o cliente só precisa pagar o pedido.
  • Por padrão, o WooCommerce só reduz o estoque no pagamento. Precisei criar um plugin para mudar isso. Sendo assim, agora o WooCommerce reduz o estoque ao criar o pedido.
  • E o WooCommerce repõe o estoque caso o pedido seja cancelado.
  • Filtros customizados: idade, estilo de game, marca e etc. Tudo feito com taxonomias de produto.

Além disso, temos o layout responsivo, o que já não é nem uma vantagem, mas o básico. O site antigo tratava os dados dos clientes sem ser com base nas regras do WooCommerce, mas salvando os dados em uma tabela separada. Para colocar tudo dentro dos padrões, precisei migrar essas informações. Para facilitar, cada usuário migra seus próprios dados. Para fazer isso, criei a seguinte regra: quando o usuário loga no novo site pela primeira vez, um script verifica se é a primeira vez e copia os dados antigos para as novas tabelas. Uma por vez e somente quando o usuário acessa o site. Isso evitou de ter que fazer uma migração completa, trabalhosa e desnecessária de uma vez só.

Tem diversas outras coisas bacanas nesse projeto. Outro dia, quem sabe, faço um post detalhando os processos todos de desenvolvimento e as principais dificuldades. Eu já tinha um bom conhecimento de WooCommerce, mas precisei aprender muito para concluir este projeto. A maior parte foi lendo o código do WooCommerce e a documentação.

Se você quer saber mais sobre sites com WooCommerce e porque não, você não precisa do Magento nem nada do tipo (embora seja uma opção aceitável, claro), pode entrar em contato comigo.

:)