Se eu recarregar a checkout/onepage/success
página, sou direcionado ao carrinho.
Portanto, ao depurar ou estilizar a página de sucesso do pedido, sempre tenho que fazer um novo pedido.
Como posso fazer isso de forma mais eficiente?
checkout
development
Alex
fonte
fonte
Respostas:
Você pode cortar temporariamente o núcleo enquanto estiver desenvolvendo:
Em
/app/code/core/Mage/Checkout/controllers/OnepageController.php
ediçãosuccessAction()
.Comente a linha
$session->clear();
. Agora você pode fazer um pedido e atualizar a página quantas vezes quiser.Se você nem deseja fazer um pedido em cada navegador, por exemplo, ao fazer testes em vários navegadores, também é possível inicializar a sessão todas as vezes.
Escolha um ID do pedido e um ID da cotação na tabela
sales_flat_order
(campos:entity_id
equote_id
). Por exemplo, via:Altere o início da função da seguinte maneira:
e substitua
INSERT_....
pelos IDs.Agora você sempre pode ligar
checkout/onepage/success
Enquanto você está nisso, você pode querer testar o
failureAction()
também, emA ação modificada ficaria assim
Agora você sempre pode ligar
checkout/onepage/failure
fonte
\vendor\magento\module-checkout\Controller\Onepage\Success.php
Você precisa modificar o successAction () em
Ação modificada gostaria desta
fonte
$lastOrderId
não está definido o que levaria a um aviso e poderia levar a efeitos colaterais no modelo.Espero não ser muito autopromocional, mas criei uma extensão gratuita que pode ser instalada rapidamente no Magento e permite que você visualize a página de sucesso de pedidos de qualquer pedido - simplesmente acessando um URL: http: // www. yireo.com/software/magento-extensions/checkout-tester
fonte
Acho melhor comentar apenas $ session-> clear (); e adicione produtos manualmente, que funcionaram para mim, mas comentar toda a ação me deu erros de sintaxe.
fonte
Para Magento 2:
Se você deseja estilizar ou personalizar na página de sucesso, a página de sucesso do pedido é redirecionada para a página do carrinho.
Agora a solução está aqui:
Vá para
vendor/magento/module-checkout/Controller/Onepage
abrirSuccess.php
arquivo.Neste arquivo, você vê o código abaixo
Basta comentar sobre este código e seu problema está resolvido. Após comentar isso, você não redireciona para a página do carrinho.
fonte
Em vez de enviar emails da cópia local / de desenvolvimento, você pode despejar o conteúdo do email em um arquivo e apenas ver localmente, o que, na minha opinião, será realmente útil. Aqui está como isso pode ser alcançado. Primeiro, todos os emails são enviados de
Encontre isso e adicione as seguintes linhas.
Depois disso, depois de criar qualquer pedido, um email.html será criado na raiz do documento Magento e você poderá abri-lo no navegador para ver a saída.
Em seguida, para enviar / reenviar todos os emails de pedidos, basta fazer login no admin e, para cada pedido, há o botão Enviar Email, que acionará esse script e você poderá ver o modelo recém-alterado gravado no mesmo arquivo. Acho que essa é uma das melhores maneiras de ver pedidos ou outros emails.
Observe para remover o código adicionado quando terminar.
fonte
Você precisa atualizar o código:
Função de atualização:
Apenas comente:
fonte
Magento 2
Como outra resposta, você pode comentar o redirecionamento
Magento\Checkout\Controller\Onepage\Success::execute
e forçar o carregamento da página de sucesso do checkout. Mas quando o bloco,Magento\Checkout\Block\Onepage\Success
carrega, nenhum dado do pedido estará presente porqueMagento\Checkout\Model\Session::getLastRealOrder
não retornará um pedido. Uma opção melhor seria um interceptador posterior no método de execução da classe do controlador, no qual você pode definir um valorlastRealOrderId
na sessão de checkout.Essa abordagem também oferece a oportunidade de despachar o
checkout_onepage_controller_success_action
evento com o pedido desejado. O evento acionará os observadoresMagento\GoogleAdwords\Observer\SetConversionValueObserver
eMagento\GoogleAnalytics\Observer\SetGoogleAnalyticsOnOrderSuccessPageViewObserver
com seus dados de teste.A seguir, um módulo bastante básico que cria o interceptador descrito acima e permite definir a ordem anexando um
order
parâmetro de consulta com o ID de incremento desejado ao URL da página de sucesso. Atualmente, ele não funciona na rota de sucesso multishipping. Pode ser baixado no github: https://github.com/pmclain/magento2-successtestfonte