Jeśli ponownie załaduję checkout/onepage/success
stronę, nastąpi przekierowanie do koszyka.
Tak więc, podczas debugowania lub stylizacji strony sukcesu zamówienia, zawsze muszę złożyć nowe zamówienie.
Jak mogę to zrobić bardziej efektywnie?
checkout
development
Alex
źródło
źródło
Odpowiedzi:
Możesz tymczasowo zhakować rdzeń podczas opracowywania:
W
/app/code/core/Mage/Checkout/controllers/OnepageController.php
edycjisuccessAction()
.Skomentuj linię
$session->clear();
. Teraz możesz złożyć jedno zamówienie i odświeżać stronę tak często, jak chcesz.Jeśli nawet nie chcesz składać zamówienia w każdej przeglądarce, na przykład podczas testowania w różnych przeglądarkach, możesz po prostu zainicjować sesję za każdym razem.
Wybierz identyfikator zamówienia i identyfikator oferty z tabeli
sales_flat_order
(pola:entity_id
iquote_id
). Na przykład przez:Następnie zmień początek funkcji w następujący sposób:
i zamień
INSERT_....
na identyfikatory.Teraz możesz zawsze zadzwonić
checkout/onepage/success
W tym momencie możesz również przetestować
failureAction()
, wZmodyfikowana akcja wyglądałaby tak
Teraz możesz zawsze zadzwonić
checkout/onepage/failure
źródło
\vendor\magento\module-checkout\Controller\Onepage\Success.php
Musisz zmodyfikować SuccessAction () w
Zmodyfikowane działanie chciałoby to
źródło
$lastOrderId
nie jest zdefiniowane, co mogłoby wpłynąć na powiadomienie i może prowadzić do skutków ubocznych w szablonie.Mam nadzieję, że nie promuję się zbytnio, ale stworzyłem bezpłatne rozszerzenie, które można szybko zainstalować w Magento i pozwala wyświetlić podgląd strony sukcesu zamówienia dla dowolnego zamówienia - po prostu uzyskując dostęp do adresu URL: http: // www. yireo.com/software/magento-extensions/checkout-tester
źródło
Myślę, że lepiej jest po prostu skomentować $ session-> clear (); i ręcznie dodawać produkty, które działały dla mnie, ale komentowanie całej akcji spowodowało błędy składniowe.
źródło
W przypadku Magento 2:
Jeśli chcesz stylizować lub dostosować stronę sukcesu po zamówieniu strona przekierowuje do strony koszyka.
Teraz rozwiązanie jest tutaj:
Idź, aby
vendor/magento/module-checkout/Controller/Onepage
otworzyćSuccess.php
plik.W tym pliku widać kod poniżej
Po prostu skomentuj ten kod, a Twój problem zostanie rozwiązany. Po skomentowaniu nie przekierowujesz na stronę koszyka.
źródło
Zamiast wysyłać wiadomości e-mail z kopii lokalnej / programistycznej, możesz zrzucić zawartość wiadomości e-mail do pliku, a następnie po prostu zobaczyć lokalnie, co moim zdaniem będzie bardzo przydatne. Oto jak można to osiągnąć. Najpierw wysyłane są wszystkie wiadomości e-mail
Znajdź to i dodaj następujące wiersze.
Po utworzeniu dowolnego zamówienia w katalogu głównym dokumentu Magento zostanie utworzony plik email.html, który można otworzyć w przeglądarce, aby wyświetlić dane wyjściowe.
Następnie, aby wysłać / ponownie wysłać dowolne wiadomości e-mail z zamówieniem, wystarczy zalogować się do administratora, a dla każdego zamówienia jest przycisk Wyślij e-mail, który uruchomi ten skrypt, i zobaczysz nowo zmieniony szablon zapisany w tym samym pliku. Myślę, że jest to jeden z najlepszych sposobów, aby zobaczyć zamówienie lub inne wiadomości e-mail.
Pamiętaj, aby po zakończeniu usunąć dodany kod.
źródło
Musisz zaktualizować kod:
Funkcja aktualizacji:
Po prostu skomentuj:
źródło
Magento 2
Jak zauważa kolejna odpowiedź, możesz skomentować przekierowanie
Magento\Checkout\Controller\Onepage\Success::execute
i wymusić załadowanie strony powodzenia kasy. Ale gdy blok,Magento\Checkout\Block\Onepage\Success
ładuje, dane zamówienia nie będą obecne, ponieważMagento\Checkout\Model\Session::getLastRealOrder
nie zwróci zamówienia. Lepszym rozwiązaniem byłoby przechwytywanie po metodzie wykonawczej klasy kontrolera, w której można ustawić wartość dlalastRealOrderId
sesji pobierania.Takie podejście zapewnia również możliwość wysłania
checkout_onepage_controller_success_action
zdarzenia z żądanym zamówieniem. Zdarzenie wyzwoli obserwatorówMagento\GoogleAdwords\Observer\SetConversionValueObserver
iMagento\GoogleAnalytics\Observer\SetGoogleAnalyticsOnOrderSuccessPageViewObserver
dane testowe.Poniżej znajduje się dość podstawowy moduł tworzący przechwytywacz opisany powyżej i umożliwia ustawienie kolejności poprzez dodanie
order
parametru zapytania o pożądanym identyfikatorze wzrostu do adresu URL strony sukcesu. Obecnie nie będzie działać na drodze do sukcesu multishipping. Można go pobrać na github: https://github.com/pmclain/magento2-successtestźródło