Alguém sabe se é possível mover a etapa de registro do cliente para o check-out, como no check-out original do Magento 1? Procurando uma extensão que faça isso por mim ou conselhos sobre como eu poderia conseguir isso.
8
Alguém sabe se é possível mover a etapa de registro do cliente para o check-out, como no check-out original do Magento 1? Procurando uma extensão que faça isso por mim ou conselhos sobre como eu poderia conseguir isso.
Respostas:
Gostaria de criar uma etapa no checkout para detectar o clima em que você está conectado e, em seguida, mostra o formulário de acordo.
Carregue o formulário de registro nesta etapa no ajax e modifique o evento after register , detectando se o registro foi feito, o checkout foi redirecionado de volta ao checkout em vez do painel.
Cheguei ao ponto de adicionar uma etapa de trabalho que mostra quando não estiver conectado ao registro e redirecionar o sucesso do registro de volta para o checkout, desativando a etapa anterior para uma experiência agradável do usuário.
Oferecer uma opção de login se o usuário tiver uma conta, mas ainda não tiver efetuado login nesse estágio, melhorará ainda mais aqui.
Este é um código completo, se você deseja verificar tudo, havia muito a incluir na resposta:
Crie um formulário de registro no controlador:
Como as etapas de checkout precisam
php
ser executadas para obter o URL e a chave do formulário, etc, será necessário um controlador para que possamos carregar esse formulário de registro através do ajax na etapa.O abaixo renderiza os blocos de registro no controlador para que possamos chamar o ajax no checkout.
Certifique-se de adicionar routes.xml na pasta etc / frontend do módulo.
Crie uma etapa de checkout:
Como esta é a primeira etapa, certifique-se de adicionar os mixins, como fiz no módulo, pois os devdocs estão incorretos aqui, levando a cada etapa exibida:
Isso estava falhando se o bloco não havia sido carregado antes da chamada do ajax, mas acabou sendo usado algo como esse para obter nosso formulário de registro do controlador e cuspi-lo na etapa:
Existem muito mais etapas aqui, basta seguir os devdocs, certificando-se de executar a etapa mixin, mas use abaixo para mixin, pois o exemplo devdocs não funciona:
As principais diferenças foram as etapas de pagamento e envio que usam isVisible e Visible e os devdocs usam apenas visível no exemplo, portanto isVisible precisava ser adicionado para corrigir. Também teve que fazer ajustes para se a etapa foi desativada.
Modificar redirecionamento de registro:
Exemplo aproximado, mas também foi necessário substituir o register.phtml para adicionar a variável de checkout post para determinar a diferença entre os 2 formulários. Lá onde muitas etapas eu não mostrei, mas verifique o módulo que criei para obter um exemplo completo.
fonte