Estoy tratando de obtener el presupuesto total del carrito en minicart.phtml, pero no tengo suerte. Estoy inyectando Magento \ Checkout \ Model \ Cart.
Aquí está mi código:
$this->cart = $cart;
$cartQuote= $this->cart->getQuote()->getData();
echo $cartQuote['base_grand_total'];
Después de ejecutar ese código, el minicart se rompe y desaparece totalmente de la interfaz.
¡Gracias!
Respuestas:
Esta línea a continuación funciona para todos los casos si el caché está habilitado, funciona bien,
Para obtener el valor del total general, la tasa de envío,
Puede obtener GrandTotal, subtotal y tarifa de envío para la cotización actual usando el código a continuación en el archivo minicart.phtml, pero cuando el caché está habilitado en ese momento, no actualice el precio cuando agrega un nuevo producto usando el método a continuación.
fuente
Tuvimos una pregunta similar de un cliente. donde quería mostrar "[cantidad] artículo [subtotal]" en un bloque de carrito con estilo en lugar del icono de carrito predeterminado en el minicart.
Encontramos esta pregunta aquí, pero no nos gustó la respuesta donde necesitábamos extender la
\Magento\Checkout\CustomerData\Cart
clase solo para renderizar correctamente algunos HTMLEste es el código de cómo lo arreglamos en la plantilla:
Parece que también puede usar el enlace de datos knockout.js estándar y no tiene que usar el método de comentario loco magento 2. esto solucionó el problema donde renderizar
getCartParam('subtotal')
con el método html donde normalmente imprimiría el subtotal incorrectamente debido a la<span ="price"></span>
etiquetafuente
Este código anterior funcionará en la carga de la página, pero no funcionará con magento2 ajax add to cart ya que ahora usa Knockout JS.
Para eso deberías usar -
Aquí he agregado un nuevo parámetro de carrito " subtotal_value " ya que el " subtotal " devolverá el intervalo del contenedor de precios y se mostrará como TEXTO usando KO. Aquí debe usar " Instancia de Administrador de Objetos " directamente, ya que no podrá inyectar dependencias a la " construcción __ ".
NOTA, hay algunas excepciones en las que podríamos necesitar usar " Instancia del Administrador de Objetos " directamente. En nuestro caso, es la compatibilidad con versiones anteriores del constructor.
Excepción de ObjectManager
A continuación, copie el tema predeterminado de magento " /cart/minicart.phtml " a su tema y agregue los códigos KO.
texto ko: getCartParam ('subtotal_value')
fuente
Defina un bloque en su diseño en la clase marcada como "Magento \ Checkout \ Block \ Cart \ Totals"
Luego, en .phtml, puede tener el siguiente código
Rendimiento esperado
fuente