J'essaie d'obtenir le total de la commande sur la page de réussite sur magento 2, j'ai ajouté ce code
<?php
$order = Mage::getModel('sales/order')->loadByIncrementId($this->getOrderId());
$totall = $order->getGrandTotal();
?>
Mais je reçois une erreur lorsque j'atteins la page de réussite après avoir passé une commande, je suppose que le code fonctionne pour magento 1 mais pas 2. Comment puis-je faire en sorte que cela fonctionne également sur magento 2?
Réponses:
Magento 2.1
Le bloc mentionné ci-dessous est maintenant
Magento\Checkout\Block\Onepage\Success
Magento 2.0
La seule chose que vous pouvez récupérer en mode natif sur cette page est l'ID de commande à l'aide de la
getRealOrderId()
méthode définie dansMagento\Checkout\Block\Success
Ainsi, pour obtenir l'ID de commande, vous pouvez appeler ce qui suit dans votre modèle:
Cependant, je comprends que ce n'est pas exactement ce dont vous avez besoin.
Dans ce cas, même si vous pouvez utiliser directement le gestionnaire d'objets, il n'est pas recommandé. Vous devez utiliser un module personnalisé pour définir les préférences de ce bloc .
En
app/code/Vendor/Module/etc/frontend/di.xml
vous avez besoin le code suivant:Puis dans
app/code/Vendor/Module/Block/Checkout/Success.php
:N'oubliez pas l'habituel
app/code/Vendor/Module/etc/module.xml
Aussi bien que
app/code/Vendor/Module/registration.php
Une fois que vous avez terminé et que vous avez exécuté les commandes suivantes:
Vous devriez pouvoir appeler les éléments suivants dans votre modèle:
Ajouter plus de méthodes
Vous pouvez ajouter les éléments suivants qui peuvent être utiles lors du suivi dans la classe de bloc:
Ensuite, vous pourrez appeler ce qui suit à partir de votre modèle:
la source
echo get_class($block);
pour vérifier si le remplacement fonctionne mais si le bloc n'est pas rendu du tout, cela ne fonctionnera probablement pasIl suffit d'ouvrir
Magento_Checkout/frontend/templates/success.phtml
Et mettez le code ci-dessous dans le fichier
Dans le code ci-dessus, vous obtiendrez toutes les données de commande sur la page de réussite.
Merci
la source
Autant que je sache, il y a un événement -
checkout_onepage_controller_success_action
qui est déclenché après que Checkout une page a réussi.fournisseur / magento / module-checkout / Controller / Onepage / Success.php
Comme nous pouvons le voir, nous pouvons obtenir l'ID de commande en utilisant Observer. Par exemple:
Jetez un œil aux modules google pour plus de détails:
vendeur / magento / module-google-adwords
vendeur / magento / module-google-analytics
la source