Magento Erreur Fatale: Appel à la fonction membre getSku() sur un non-objet
J'ai rencontré une étrange erreur dans le site Magento, je suis en développement et en dépit de mes demandes de renseignements en ligne, il semble que personne n'ait jamais vu cette erreur exacte dans les mêmes circonstances. Lemme 'splain.
Le texte complet du message d'erreur est: est-ce
Erreur fatale: Appel à une fonction membre getSku() sur un non-objet dans /path/on/server/app/code/core/Mage/Catalog/Model/Product/Option/Type/Select.php sur la ligne 221.
Maintenant, d'autres ont eu ce message d'erreur--elle a été adressée et soi-disant fixe dans la 1.3.1 feuille de route (http://www.magentocommerce.com/roadmap/release/1.3.1). Cependant, la situation de ceux d'autres messages d'erreur ont été où ils ont essayé d'ajouter un article au panier--si l'article a des options personnalisées, il boucle ce message d'erreur.
Ma situation est que j'ai un SIMPLE point--pas livré ou configurable--sans options personnalisées. Je peux l'ajouter au panier, sans aucun problème. Mais si je passe par l'ensemble de la procédure de commande, lors de la passation de la commande, le message d'erreur s'affiche sur un écran blanc. L'URL dans le navigateur m'indique que je suis sur la caisse le succès de la page.
ET, l'ordre semble aller de travers à la perfection, se faire enregistrer par les deux Magento ET Authorize.net.
J'ai essayé de débogage de l'erreur, dans la mesure où je peux aller, mais celui-ci m'a déconcerté.
Pour référence, je suis dans Magento 1.3.2.4. Quand j'ai reçu le message d'erreur que j'ai réinstallé tous les fichiers de base et était encore en mesure de reproduire l'erreur.
Je vais continuer à tester, mais si quelqu'un a des idées lumineuses sur les raisons de ce qui se passe, j'aimerais entendre vos pensées. Je suis tellement proche de lancement et cette chose pourrait mettre le holà sur l'ensemble de la chose.
Vous devez vous connecter pour publier un commentaire.
J'ai eu cette erreur avant et a été également ne pas obtenir toute frappe sur la façon de le résoudre. Donc, j'ai dû modifier les fichiers de base pour résoudre le message d'erreur. Le problème est
Mage_Catalog_Model_Product_Option::getValueById()
peut renvoyer une valeur nulle, MAISCatalog/Model/Product/Option/Type/Select.php
n'est PAS de vérifier cette possibilité.Voici la solution qui a fonctionné pour moi:
Ouvrir
app/code/core/Mage/Catalog/Model/Product/Option/Type/Select.php
Modifier la ligne 121 de:
À:
J'ai toujours la haine de modification de fichiers de base, mais quand il y a un bug il n'y a pas grand chose d'autre que je peux faire!
app/code/local/Mage/Catalog/Model/Product/Option/Type/Select.php
), de sorte que les mises à niveau ne sera pas le tuer.J'ai suivi les étapes que pygorex1 posté, mais aussi remplacé les lignes 191-195 dans le
Select.php
fichier, parce que j'étais encore une autre erreur similaire sur legetPrice()
. J'ai Magento ver. 1.3.2.4.Code Original de lignes 191-195:
Voici le code que j'ai créé pour remplacer les lignes de 191-195:
FYI - je ne suis PAS un programmeur PHP. Je viens d'arrivé à comprendre comment retravailler le code pour le rendre résoudre ce problème basée sur pygorex1 du code. Donc, il ya une bonne chance que je n'ai pas l'écrire correctement. Cependant, il n'a résoudre le problème pour moi (dont je suis plutôt fière 🙂
A obtenu le même problème. Backtraced et identifié ce qui se passe pour moi lors de l'édition de commandes dans l'admin et que la commande contient au moins un produit avec une option qui a été supprimé depuis le commande a été passée.
Fixe de trois fichiers, de sorte que le produit est tout simplement supprimé lors de la modification d'une commande - toutes les modifications de travail en "local" champ d'application fichiers de base reste intacte:
1. app/code/local/Mage/Catalogue/Modèle/Produit/Options/Type/Select.php:221
(recherche)
(préfixe)
2. app/code/local/Mage/Vente/Modèle/Devis.php:695
(recherche)
(remplacer)
3. app/code/local/Mage/Adminhtml/Modèle/Vente/Commande/Créer.php:288
(recherche)
(remplacer)
Bien, j'ai eu la même erreur pour mon client, Magento a été fonctionne correctement sur un serveur mais pas sur l'autre donc je mais il doit être quelque chose de mal avec la nouvelle installation (après la migration). Je n'ai pas jouer avec le code, juste de réparer la base de données et il a commencé à travailler correctement.