Si je recharge la checkout/onepage/success
page, je suis dirigé vers le panier.
Ainsi, lors du débogage ou du style de la page de réussite de la commande, je dois toujours effectuer une nouvelle commande.
Comment puis-je faire cela plus efficacement?
checkout
development
Alex
la source
la source
Réponses:
Vous pouvez pirater temporairement le noyau pendant que vous développez:
En
/app/code/core/Mage/Checkout/controllers/OnepageController.php
éditionsuccessAction()
.Commentez la ligne
$session->clear();
. Vous pouvez maintenant passer une commande et actualiser la page aussi souvent que vous le souhaitez.Si vous ne souhaitez même pas passer commande sur chaque navigateur, par exemple lorsque vous effectuez des tests entre navigateurs, vous pouvez également initialiser la session à chaque fois.
Choisissez un identifiant de commande et un identifiant de devis dans la table
sales_flat_order
(champs:entity_id
etquote_id
). Par exemple via:Puis changez le début de la fonction comme suit:
et remplacer
INSERT_....
par les identifiants.Maintenant, vous pouvez toujours appeler
checkout/onepage/success
Pendant que vous y êtes, vous voudrez peut-être aussi tester
failureAction()
, enL'action modifiée ressemblerait à ceci
Maintenant, vous pouvez toujours appeler
checkout/onepage/failure
la source
\vendor\magento\module-checkout\Controller\Onepage\Success.php
Vous devez modifier successAction () dans
Une action modifiée aimerait ceci
la source
$lastOrderId
on ne définit pas ce qui lierait à un avis et pourrait entraîner des effets secondaires dans le modèle.J'espère que je ne fais pas trop de promotion personnelle, mais j'ai créé une extension gratuite qui peut être rapidement installée dans Magento et vous permet de prévisualiser la page de succès de la commande pour n'importe quelle commande, simplement en accédant à une URL: http: // www. yireo.com/software/magento-extensions/checkout-tester
la source
Je pense qu'il vaut mieux commenter $ session-> clear (); et ajouter des produits manuellement, cela a fonctionné pour moi, mais commenter l'ensemble de l'action m'a généré des erreurs de syntaxe.
la source
Pour Magento 2:
Si vous souhaitez styler ou personnaliser la page de succès après la commande, la page de redirection est redirigée vers la page de panier.
Maintenant la solution est là:
Aller à
vendor/magento/module-checkout/Controller/Onepage
ouvrir leSuccess.php
fichier.Dans ce fichier, vous voyez ci-dessous Code
Il suffit de commenter ce code et votre problème est résolu. Après un commentaire, vous ne redirigez pas vers la page panier.
la source
Au lieu d'envoyer des courriels à partir d'une copie locale / de développement, vous pouvez vider le contenu du courriel dans un fichier, puis voir juste localement, ce qui, à mon avis, sera vraiment pratique. Voici comment cela peut être réalisé. D'abord tous les emails sont envoyés de
Trouvez cela et ajoutez les lignes suivantes.
Après cela, après avoir créé une commande, un email.html sera créé dans la racine du document Magento et vous pourrez l'ouvrir dans le navigateur pour voir le résultat.
Ensuite, pour envoyer / ré-envoyer tous les courriels de commande, vous pouvez simplement vous connecter en tant qu'administrateur. Pour chaque commande, le bouton Envoyer un courriel déclenchera ce script et vous pourrez voir le modèle nouvellement modifié écrit dans le même fichier. Je pense que c'est l'un des meilleurs moyens de voir l'ordre ou tout autre courrier électronique.
S'il vous plaît noter pour supprimer le code ajouté lorsque vous avez terminé.
la source
Vous devez mettre à jour le code:
Fonction de mise à jour:
Juste un commentaire:
la source
Magento 2
Dans une autre réponse, vous pouvez commenter la redirection
Magento\Checkout\Controller\Onepage\Success::execute
et forcer le chargement de la page de succès de la validation du paiement. Mais lors du blocage,Magento\Checkout\Block\Onepage\Success
aucune donnée de commande ne sera présente carMagento\Checkout\Model\Session::getLastRealOrder
elle ne renverra pas de commande. Une meilleure option serait un intercepteur après sur la méthode execute de la classe de contrôleur, où vous pouvez définir une valeur pourlastRealOrderId
dans la session de paiement.Cette approche fournit également une opportunité d’envoyer l’
checkout_onepage_controller_success_action
événement avec votre commande souhaitée. L'événement déclenchera les observateursMagento\GoogleAdwords\Observer\SetConversionValueObserver
etMagento\GoogleAnalytics\Observer\SetGoogleAnalyticsOnOrderSuccessPageViewObserver
vos données de test.Ce qui suit est un module assez basique créant l'intercepteur décrit ci-dessus et permet de définir l'ordre en ajoutant un
order
paramètre de requête avec l'ID d'incrément souhaité à l'URL de la page de réussite. Cela ne fonctionnera pas actuellement avec la voie de la réussite multi-puces. Il peut être téléchargé sur github: https://github.com/pmclain/magento2-successtestla source