Estou tentando obter o total da cotação do carrinho em minicart.phtml, mas não estou tendo sorte. Estou injetando Magento \ Checkout \ Model \ Cart.
Aqui está o meu código:
$this->cart = $cart;
$cartQuote= $this->cart->getQuote()->getData();
echo $cartQuote['base_grand_total'];
Depois de executar esse código, o minicart quebra e desaparece totalmente do frontend.
Obrigado!
Respostas:
Esta linha Abaixo é útil para todos os casos, se o cache permitir que funcione corretamente,
Para obter valor de grandtotal, taxa de envio,
Você pode obter GrandTotal, subtotal e taxa de remessa para cotação atual usando o código abaixo no arquivo minicart.phtml. Porém, quando o cache estiver ativado naquele momento, não atualize o preço ao adicionar novo produto usando o método abaixo.
fonte
Tivemos uma pergunta semelhante de um cliente. onde ele queria mostrar "[quantidade] item [subtotal]" em um bloco de carrinho com estilo, em vez do ícone de carrinho padrão no minicart.
Encontramos essa pergunta aqui, mas não gostamos da resposta em que precisávamos estender a
\Magento\Checkout\CustomerData\Cart
classe apenas para renderizar alguns html corretamenteeste é o código como o corrigimos no modelo:
Parece que você também pode usar a ligação de dados knockout.js padrão e não precisa usar o método de comentários nocaute do magento 2. isso resolveu o problema ao renderizar o
getCartParam('subtotal')
método html, onde normalmente imprimia o subtotal incorretamente devido à<span ="price"></span>
tagfonte
Este código acima funcionará no carregamento da página, mas não funcionará com o magento2 ajax add ao carrinho, pois ele usa o Knockout JS agora.
Para isso você deve usar -
Aqui eu adicionei um novo parâmetro de carrinho " subtotal_value ", pois o " subtotal " retornará o período do contêiner de preço e será exibido como TEXT usando KO. Aqui você deve usar " Instância do gerenciador de objetos " diretamente, pois não será possível injetar dependências no " __construct ".
OBSERVAÇÃO, existem poucas exceções nas quais podemos precisar usar " Instância do gerenciador de objetos " diretamente. No nosso caso, é a compatibilidade com versões anteriores do construtor.
Exceção do ObjectManager
Em seguida, copie o tema padrão do magento " /cart/minicart.phtml " para o seu tema e adicione os códigos KO.
ko texto: getCartParam ('subtotal_value')
fonte
Defina um bloco no seu layout em que classe marcada como "Magento \ Checkout \ Block \ Cart \ Totals"
Em .phtml você pode ter o código abaixo
Saída esperada
fonte