Jump to content

Prestashop 1.7 Error 500


Recommended Posts

Hoffe jemand kann mir da einen Tipp geben.

Beim Abschluss der Bestellung (als gast oder Kunde) steht In der Liefer- resp. Rechnungsadresse kein Feld mehr mit Vorname sondern customer und im nächsten Schritt kriege ich einen 500 Server Error.
Hat das zufällig auch schon jemand gehabt oder weiss wo ich suchen kann?

Bin leider nicht der grosse Spezi bei diesem Shop.

Das Ganze kam von einem Tag auf den anderen, keine Ahnung ob ich da was verbockt habe, aber es kamen
auch keine Bestellungen rein damit ich das gemerkt hätte.

 

Wäre super wenn mir einer einen Tipp geben kann.

 

Vielen Dank

 

Fehlermeldung (mit debug):

[PrestaShopException]

Kein Eintrag in Address->firstname
at line 944 in file classes/ObjectModel.php

939. }
940.
941. $message = $this->validateField($field, $this->$field);
942. if ($message !== true) {
943. if ($die) {
944. throw new PrestaShopException($message);
945. }
946. return $error_return ? $message : false;
947. }
948. }
949.

 

Link to comment
Share on other sites

google mal nach , prestashop 1.7 error 500

Inwieweit sollte das hilfreich sein? Daß man bei einem Error 500 Error Reporting aktiviert muß er nicht mehr ergoogeln.

 

Zunächst: 1.7 ist keine vollständige Versionsangabe. Sinnvoll wäre vielleicht auch die Angabe der PHP-Version. Ist es egal, was man ins Feld "Vorname" einträgt? Link zum Shop?

Link to comment
Share on other sites

Hi rictools

Danke für deine Hilfe

Ich musste eine Notlösung basteln und habe die Zeilen im Object Model (um die 944) auskommentiert.

Damit wird die Abfrage ausgelassen und es kann bestellt werden. Es sind auch alle Angaben da inkl Vorname.
nur dass das Feld Vorname nicht erscheint sondern ein Select Feld mit customer?

Wenn ich eine weitere Adresse eingebe sehe ich beide in der Registerkarte "Adressen" MIT Vorname" der aus den persönliche Daten übernommen wurde? Keine Ahnung woher das Feld "customer" kommt?

 

PHP Version ist 5.6.31

Prestashop ist Version 1.7.1.1

Link zum Shop (ist live): https://perform-training.ch

 

Vielleicht hast du ja einen Tipp woher das kommen könnte. Ich habe echt keine Ahnung mehr.

 

Vielen Dank und Gruss

Marcel

Link to comment
Share on other sites

Wenn nichts gegen ein Update spricht, würde ich erst einmal auf 1.7.2 updaten, vielleicht erledigt sich das Problem ja damit. Generell wirst du zu Prestashop 1.7.x wenig Hilfe erhalten, da fast alle vom Einsatz abraten und es auch kaum jemand wenigstens zu Testzwecken nutzt.

 

Gerade mal getestet, ich kann keine Probleme mit dem Vorname-Feld erkennen.

 

Anmerkungen: Sind AGB wie bei dir in der Schweiz zulässig? Ich wäre da als potentieller Käufer ja sowas von schnell auf der Flucht ...

 

Einzige Zahlungsart Kreditkarte?

 

Blickt bei den Versandkosten jemand durch? Ich nicht ... Lt. Infoseite sollte ich wohl für 4,5 kg wahnsinnige 75 Franken bezahlen, im Warenkorb steht allerdings versandkostenfrei und der Footer, um die Versandkosteninfo aufzurufen, ist nicht mehr sichtbar ... Nachdem ich das Land ausgewählt habe (zur Auswahl steht eigentlich nichts außer der Schweiz, warum ist die nicht vorausgewählt?), soll ich auf einmal wahnsinnige 209 Franken Versandkosten bezahlen ...

 

Wozu kann man die USt.-IdNr. eintragen?

Link to comment
Share on other sites

  • 1 month later...

Es ist aber leider der selbe Fehler wie oben. Nur das es bei mir nicht am Namen hängt sondern an der Länderauswahl die ein Pflichtfeld ist, und auch gefüllt wird...aber den Fehler erzeugt. Wenn man dann zurück geht ist alles eingetragen und richtig.

 

Wie gesagt alles ist auf dem neuesten Stand :(

PrestaShop-Version 1.7.2.2

 

Kein Eintrag in Address->id_country
at line 944 in file classes/ObjectModel.php

939. }
940.
941. $message = $this->validateField($field, $this->$field);
942. if ($message !== true) {
943. if ($die) {
944. throw new PrestaShopException($message);
945. }
946. return $error_return ? $message : false;
947. }
948. }
949.
Edited by theo74 (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...
On 28.9.2017 at 5:31 PM, theo74 said:

Hat keiner eine kleine Idee was man machen kann? Wäre wirklich dankbar :(

 

 

hab das gleiche problem wie du mit der länder auswahl. da des aber richtig gespeichert wird hab ich jetzt einfach die umleitung vom error 500 genommen und die auf hauptseite wieder gelinkt. naja unschön aber vorrübergehend sinnig. 

 

Link to comment
Share on other sites

Also bei den hier geposteten "Lösungen" stehen mir die Haar zu Berge. Anstelle das Problem im Kern zu analysieren, werden einfach Validierungen aus dem Programmcode deaktiviert.

Was kann man den tun? Man kann das Template z.B. Debuggen. Ich vermute, dass der Fehler dort liegt und der Inhalt des Feldes Land bzw. dessen ID nicht korrekt übertragen wird. Wenn es sich NICHT um das PrestaShop Theme dreht, dann würde ich auch den Theme-Entwickler mal anschreiben.

Wenn es das Default Theme ist, einfach mal die .tpl Datei genau anschauen oder den Seitenquelltext im Browser, bevor man das Formular absendet.

Link to comment
Share on other sites

schon klar. es ging aber um eine "schnelle" erstlösung. damit der shop weiter läuft. ohne das die user viel davon mitbekommen. natürlich hab ich nen dump gezogen und den auf na test instatz eingespielt. wo ich jetzt in ruhe ohne stress und druck das beheben kann. 

Link to comment
Share on other sites

Diese "Quick & Dirty" Lösung kann natürlich keine Endlösung sein, aber wie @weiricth1 schon sagt "der Shop muss laufen".

Wir haben den Fehler gesucht und versucht die Ursache zu beheben. Kamen aber keine Schritt weiter. Deshalb ist dieser Post ja erstellt worden :)
Am Template liegt es z.B. nicht - auch mit dem original Template erscheint die Error Meldung.
 

Kein Eintrag in Address->id_country
at line 944 in file classes/ObjectModel.php

939. }
940.
941. $message = $this->validateField($field, $this->$field);
942. if ($message !== true) {
943. if ($die) {
944. throw new PrestaShopException($message);
945. }
946. return $error_return ? $message : false;
947. }
948. }
949.
ObjectModelCore->validateFields - [line 272 - classes/ObjectModel.php]
ObjectModelCore->getFields - [line 683 - classes/ObjectModel.php]
ObjectModelCore->update - [line 202 - classes/Address.php] - [1 Arguments]
AddressCore->update - [line 219 - classes/Address.php]
AddressCore->delete - [line 73 - classes/form/CustomerAddressPersister.php]
CustomerAddressPersisterCore->save - [line 162 - classes/form/CustomerAddressForm.php] - [2 Arguments]
CustomerAddressFormCore->submit - [line 58 - controllers/front/AddressController.php]
AddressControllerCore->postProcess - [line 194 - classes/controller/Controller.php]
ControllerCore->run - [line 379 - classes/Dispatcher.php]
DispatcherCore->dispatch - [line 28 - index.php]

 

Link to comment
Share on other sites

Du hast wohl Deine PrestaShop Version hier noch nicht genannt. Dann wäre es evtl. Zeit, dies noch nachzuholen. Weiter kommt mir in den Sinn, dass Du ggf. im Adressformat das Land nicht gesetzt hast. PrestaShop benötigt immer ein Land und damit eine Länder-ID.

 

Link to comment
Share on other sites

Die Version wird oben genannt :) PrestaShop-Version 1.7.2.2
Das Land wird ausgewählt und gesetzt... wenn man dann auf Fortsetzen drücken erscheint der Error... geht man zurück sind die Daten und auch das Land gespeichert :(
Das heißt es funktioniert eigentlich erzeugt aber den Fehler das Länder ja Pflichtfelder sind...was sie auch sind und auch als Pflichtlied definiert :( 
Und da liegt das Problem - ein Fehler der kein Fehler ist :(

 

Link to comment
Share on other sites

So, das habe ich noch gefunden

https://stackoverflow.com/questions/42413535/prestashop-1-7-unable-to-save-order-address

 

und wenn man dann, wie beschrieben 

In classes\form\CustomerAddressPersister.php

public function save(Address $address, $token)
{
    if (!$this->authorizeChange($address, $token)) {
        return false;
    }

    $address->id_customer = $this->customer->id;
    $address->save();    // <-- Add this

    if ($address->isUsed()) {
        $old_address = new Address($address->id);
        $address->id = $address->id_address = null;

        return $address->save() && $old_address->delete();
    }

    return $address->save();
}

 

denn Code $address->save(); in Zeile 68 eingibt läuft es.

 

 

 

  • Thanks 2
Link to comment
Share on other sites

  • 7 months later...

Konnte das Problem mit dem Fix hier "denn Code $address->save(); in Zeile 68 eingibt läuft es." beheben können bei 1.7.2, habe nun aktualisiert auf 1.7.3.3 und das Problem tritt wieder auf.. die Zeile $address - > save(); ist noch immer vorhanden, hat mir jemand noch nen Tipp?

Danke im Voraus

d.

Link to comment
Share on other sites

15 hours ago, rictools said:

Ja, ein Update ohne Not ist oft ein Fehler, vor allem auf die gerade neueste Version ... Der Tipp war ja vom vergangenen Herbst.

Danke für deinen äussert hilfreichen und nützlichen Einzeiler.. :) 

Das Update hatte mit dem Error 500 nichts zu tun, das Problem waren "tote" Bestellungen in der Datenbank, welche ich importiert hatte von 1.6.x
Falls jemand das gleiche Problem hat, unabhängig der 1.7.x Version, prüft in der Tabelle ps_orders die Felder id_address_delivery und id_address_invoice.

Sollte da in einem Feld der Wert 0 eingetragen sein, löscht den Datensatz oder ergänzt manuell eine Random-ID, danach klappts.

Link to comment
Share on other sites

1 hour ago, dszuecs said:

Danke für deinen äussert hilfreichen und nützlichen Einzeiler.. :) 

Du hattest ja nun auch nicht gerade viel Information geliefert. Außerdem ist es sicher kein Fehler immer mal wieder darauf hinzuweisen, daß man nicht immer gleich auf die neueste Version upgraden sollte (never change a running system), genauso wie darauf, daß fast alle erfahreneren User hier 1.7.x nicht verwenden und deshalb auch wenig Hilfe möglich ist.

Wenn du außer dem Update gleichzeitig einen Import von Daten vorgenommen hast und es an diesem liegt, dann kann ich das natürlich nicht ahnen, generell sollte man sich schon gut mit der Datenbankstruktur auskennen, um so etwas zu unternehmen.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...