Próbuję uzyskać całkowitą wycenę koszyka w minicart.phtml, ale nie mam szczęścia. Wstrzykuję Magento \ Kasa \ Model \ Koszyk.
Oto mój kod:
$this->cart = $cart;
$cartQuote= $this->cart->getQuote()->getData();
echo $cartQuote['base_grand_total'];
Po uruchomieniu tego kodu minikart łamie się i całkowicie znika z interfejsu.
Dzięki!
Odpowiedzi:
Ta linia poniżej działa we wszystkich przypadkach, jeśli pamięć podręczna jest włączona,
Aby uzyskać wartość grandtotal, stawkę za wysyłkę,
Możesz uzyskać GrandTotal, sumę częściową i stawkę za bieżącą wycenę, używając poniższego kodu w pliku minicart.phtml, ale gdy pamięć podręczna jest włączona w tym czasie, nie aktualizuj ceny po dodaniu nowego produktu za pomocą poniższej metody.
źródło
Otrzymaliśmy podobne pytanie od klienta. gdzie chciał pokazać „[ilość] element [suma częściowa]” w stylu bloku wózka zamiast domyślnej ikony wózka w minicart.
Znaleźliśmy to pytanie tutaj, ale nie podobała nam się odpowiedź, w której musieliśmy rozszerzyć
\Magento\Checkout\CustomerData\Cart
klasę tylko po to, aby poprawnie renderować część HTMLto jest kod, w jaki sposób naprawiliśmy to w szablonie:
Wygląda na to, że możesz także użyć standardowego wiązania danych knockout.js i nie musisz używać szalonej metody komentowania knockout w magento 2. rozwiązało to problem polegający na renderowaniu za
getCartParam('subtotal')
pomocą metody html, w której normalnie wydrukowałby niepoprawnie sumę częściową ze względu na<span ="price"></span>
znacznikźródło
Powyższy kod będzie działał przy ładowaniu strony, ale nie będzie działał z magento2 ajax add do koszyka, ponieważ teraz używa Knockout JS.
Do tego należy użyć -
Tutaj dodałem nowy parametr koszyka „ subtotal_value ”, ponieważ „ subtotal ” zwróci rozpiętość kontenera cen i wyświetli się jako TEKST za pomocą KO. Tutaj musisz użyć bezpośrednio „ Object Manager Instance ”, ponieważ nie będziesz w stanie wstrzyknąć zależności do „ __construct ”.
UWAGA, istnieje kilka wyjątków, w których może być konieczne bezpośrednie użycie „ wystąpienia menedżera obiektów ”. W naszym przypadku jest to wsteczna kompatybilność konstruktora.
Wyjątek ObjectManager
Następnie skopiuj domyślny motyw magento „ /cart/minicart.phtml ” do swojego motywu i dodaj kody KO.
ko text: getCartParam („wartość sumy częściowej”)
źródło
Zdefiniuj blok w swoim układzie, w którym klasa oznaczona jako „Magento \ Checkout \ Block \ Cart \ Totals”
Następnie w .phtml możesz mieć poniżej kodu
Oczekiwany wynik
źródło