J'essaie d'obtenir le total du devis du panier dans minicart.phtml, mais je n'ai pas de chance. J'injecte Magento \ Checkout \ Model \ Cart.
Voici mon code:
$this->cart = $cart;
$cartQuote= $this->cart->getQuote()->getData();
echo $cartQuote['base_grand_total'];
Après avoir exécuté ce code, le minicart se casse et disparaît totalement du frontend.
Merci!
Réponses:
Cette ligne ci-dessous fonctionne pour tous les cas si le cache est activé, il fonctionne correctement,
Pour obtenir la valeur du grand total, le taux d'expédition,
Vous pouvez obtenir le GrandTotal, le sous-total et le taux d'expédition pour le devis actuel en utilisant le code ci-dessous dans le fichier minicart.phtml, mais lorsque le cache est activé à ce moment-là, ne mettez pas à jour le prix lorsque vous ajoutez un nouveau produit en utilisant la méthode ci-dessous.
la source
Nous avions une question similaire d'un client. où il voulait afficher "[quantité] article [sous-total]" dans un bloc de chariot de style au lieu de l'icône de panier par défaut dans le mini-chariot.
Nous avons trouvé cette question ici mais n'avons pas aimé la réponse où nous devions étendre la
\Magento\Checkout\CustomerData\Cart
classe juste pour afficher correctement du HTMLc'est le code comme nous l'avons corrigé dans le modèle:
Il semble que vous pouvez également utiliser la liaison de données knockout.js standard et ne pas avoir besoin d'utiliser la méthode de commentaire knockout fou magento 2. cela a résolu le problème de rendu de la
getCartParam('subtotal')
avec la méthode html où il afficherait normalement le sous-total de manière incorrecte en raison de la<span ="price"></span>
balisela source
Ce code ci-dessus fonctionnera lors du chargement de la page, mais ne fonctionnera pas avec magento2 ajax add to cart car il utilise Knockout JS maintenant.
Pour cela, vous devez utiliser -
Ici, j'ai ajouté un nouveau paramètre de panier " subtotal_value " car le " sous-total " renverra la durée du conteneur de prix et il s'affichera sous forme de TEXTE en utilisant KO. Ici, vous devez utiliser directement " Object Manager Instance ", car vous ne pourrez pas injecter de dépendances dans " __construct ".
REMARQUE, il existe quelques exceptions où nous pourrions avoir besoin d'utiliser directement " Instance du gestionnaire d'objets ". Dans notre cas, c'est la compatibilité descendante du constructeur.
Exception ObjectManager
Ensuite, copiez le thème par défaut de magento " /cart/minicart.phtml " dans votre thème et ajoutez les codes KO.
ko text: getCartParam ('subtotal_value')
la source
Définissez un bloc dans votre mise en page dans lequel la classe marquée "Magento \ Checkout \ Block \ Cart \ Totals"
Ensuite, en .phtml, vous pouvez avoir ci-dessous le code
Production attendue
la source