Próbuję uzyskać sumę zamówienia na stronie sukcesu na Magento 2, dodałem ten kod
<?php
$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$totall = $order->getGrandTotal();
?>
Ale pojawia się błąd, gdy po złożeniu zamówienia docieram do strony sukcesu, myślę, że kod działa dla Magento 1, ale nie 2. W jaki sposób mogę uzyskać to działające również w Magento 2?
Odpowiedzi:
Magento 2.1
Blok wymieniony poniżej jest teraz
Magento\Checkout\Block\Onepage\Success
Magento 2.0
Jedyną rzeczą, którą możesz pobrać natywnie na tej stronie, jest identyfikator zamówienia przy użyciu
getRealOrderId()
metody zdefiniowanej wMagento\Checkout\Block\Success
Tak więc, aby uzyskać identyfikator zamówienia, możesz wywołać następujące elementy w swoim szablonie:
Rozumiem jednak, że nie jest to dokładnie to, czego potrzebujesz.
W takim przypadku, nawet jeśli można bezpośrednio użyć menedżera obiektów, nie jest to zalecane. Należy użyć niestandardowego modułu do zdefiniowania preferencji dla tego bloku .
W
app/code/Vendor/Module/etc/frontend/di.xml
potrzebujesz następujący kod:Następnie w
app/code/Vendor/Module/Block/Checkout/Success.php
:Nie zapomnij o zwykłym
app/code/Vendor/Module/etc/module.xml
Tak dobrze jak
app/code/Vendor/Module/registration.php
Po zakończeniu i uruchomieniu następujących poleceń:
W szablonie powinno być możliwe wywoływanie następujących elementów:
Dodając więcej metod
Możesz dodać następujące elementy, które mogą być przydatne podczas śledzenia do klasy bloku:
Następnie będziesz mógł wywoływać następujące elementy ze swojego szablonu:
źródło
echo get_class($block);
aby sprawdzić, czy zastąpienie działa, ale jeśli blok nie jest w ogóle renderowany, to prawdopodobnie nie zadziałaPo prostu otwórz
Magento_Checkout/frontend/templates/success.phtml
I umieść poniżej kodu w pliku
W powyższym kodzie otrzymasz wszystkie dane zamówienia na stronie sukcesu.
Dzięki
źródło
O ile mi wiadomo, istnieje zdarzenie -
checkout_onepage_controller_success_action
które jest uruchamiane po pomyślnym zakończeniu transakcji przez jedną stronę.vendor / magento / module-checkout / Controller / Onepage / Success.php
Jak widzimy, możemy uzyskać identyfikator zamówienia za pomocą Observera. Na przykład:
Więcej informacji na temat modułów Google:
vendor / magento / module-google-adwords
vendor / magento / module-google-analytics
źródło