Modify

Opened 10 years ago

Closed 10 years ago

#850 closed Bug/Fehler (fixed)

Fehler in Zusammenhang mit Bundesländern

Reported by: Torsten Riemer Owned by: somebody
Priority: hoch Milestone: modified-shop-2.0.1.0
Component: Shop Version: 1.06
Keywords: Cc:
Blocked By: Blocking:

Description (last modified by Torsten Riemer)

Das folgende Problem ist bereits in 1.06 rev 4642 SP4 vorhanden und laut Kunde nur bei PHP 5.6 und nicht bei PHP 5.5 (wobei ich mir nicht vorstellen kann, dass der Fehler abhängig ist von der PHP-Version!):

Wenn "Bundesland" im Shop aktiviert ist und der Kunde beispielsweise als Land "United States" auswählt und als Bundesland "New York", dann wird das im Checkout noch alles korrekt angezeigt. Erst auf der letzten Seite bei "Druckansicht der Bestellung" wird als Bundesland in dem Fall nur noch "43" angezeigt.

Weiteres Problem in Shopversion 2.0.0.0: -> Ticket #854

Stellt man unter "Konfiguration" -> "Kundendetails" -> "Bundesland" auf "Ja" und hat aber unter "Land/Steuer" beim entsprechenden Land "Bundesländer anzeigen" auf "rot", dann wird das Bundesland-Feld bei der Registrierung zwar nicht angezeigt, aber wenn man die Registrierung abschickt, dann kommt die Meldung, dass ein Bundesland ausgewählt werden muss.

Attachments (0)

Change History (34)

comment:1 by Torsten Riemer, 10 years ago

Nachtrag: Der Kunde hat mir nochmal bestätigt, dass der Fehler unter PHP 5.5 nicht auftritt, sondern erst unter PHP 5.6.

comment:2 by Ronald Parcinski, 10 years ago

2.0.0.0
Bei mir wird das Bundeslandfeld sogar angezeigt(Responsive Template), Es ist aber leer.
Bundesländer anzeigen: ja
Germany: Bundesländer aus

comment:3 by Ronald Parcinski, 10 years ago

1.06 rev 4642 SP4
New York und 43:

43 ist Zone ID

Was steht bei der Bestellung in der orders Tabelle?

comment:4 by Torsten Riemer, 10 years ago

Dort steht auch 43 drin.

comment:5 by renevogtland@…, 10 years ago

Ich habe noch einmal in meiner Datenbank recherchiert.
Das Problem tritt schon seit dem SP3 Update auf.
In der Spalte customers_state wird das Bundesland gespeichert, in unserer Datenbank stehen dort seit dem 8.2. (der Zeitraum in dem ich das SP3 Update aufgespielt habe) abwechselnd das Bundesland korrekt aber bei vielen Bestellungen die ID Nummer vom Bundesland. Der Fehler tritt also nicht bei jeder Bestellung auf.
Ich hoffe das hilft weiter.

comment:6 by Rene Steckert <renevogtland@…>, 10 years ago

Vielleicht doch ein Problem der PHP Version da ich nach dem SP3 Update den Server auf PHP 5.6 umgestellt habe.

comment:7 by Ronald Parcinski, 10 years ago

Schau mal bei den betroffenen Bestellungen die Zahlungsart an.

Welche Zahlarten sind im Shop aktiviert

"Weiteres Problem in Shopversion 2.0.0.0:" Dafür erstelle ich ein eigenes Ticket -> #854

Last edited 10 years ago by Ronald Parcinski (previous) (diff)

comment:8 by Ronald Parcinski, 10 years ago

Description: modified (diff)

comment:9 by Torsten Riemer, 10 years ago

Description: modified (diff)

comment:10 by Torsten Riemer, 10 years ago

Ich hatte per "Vorkasse/Banküberweisung (moneyorder)" bestellt. Aktiviert sind die Zahlarten (Siehe Demoshop 2.00 wo ich das auch getestet hatte):

  • Barzahlung (cash)
  • Lastschriftverfahren (banktransfer)
  • Vorkasse/Banküberweisung (moneyorder)
  • Nachnahme (cod)
  • Rechnung (invoice)

Den Zusammenhang zur PHP-Version sehe ich aber immer noch nicht. Wieso verhält es sich laut Rene Steckert bei PHP 5.5 richtig?

comment:11 by Ronald Parcinski, 10 years ago

Fehlerursache sind falsche Einträge in der DB Tabelle address_book in der Spalte entry_state

Hier sollte der Name stehen, nicht die ID.

Fehlerursache ist also bei der Kundenanmeldung zu suchen.

Fehler bei: Neuanmeldung

Kein Fehler wenn man im Kundenkonto eine neue Adresse anlegt.

Adresse ändern, und Adressneuanlage im Checkout noch nicht getestet.

comment:12 by renevogtland@…, 10 years ago

Korrekt kann ich bestätigen.

Der Fehler tritt auf seit mit dem SP3 folgende Einträge in der create_account.php und in der create_guest_account.php geändert wurden.

$sql_data_array['entry_state'] = '';

geändert in

$sql_data_array['entry_state'] = $state;

Da nicht definiert erfolgten in Spalte entry_state zuvor nie Einträge.

comment:13 by Torsten Riemer, 10 years ago

An $state wurden zuletzt in r8195 & r8251 Änderungen durchgeführt.

comment:14 by renevogtland@…, 10 years ago

Nach Rücknahme der Änderung von SP3 in der create_account.php und der create_guest_account.php von

$sql_data_array['entry_state'] = $state;

in

$sql_data_array['entry_state'] = '';

erfolgt zwar in der DB Tabelle address_book in der Spalte entry_state kein Eintrag mehr, Testbestellungen wurden aber korrekt gespeichert. In der DB Tabelle orders sind jetzt in den Spalten customers_state, delivery_state und billing_state die korrekten Bundesland Einträge vorhanden. Die Adressdaten werden auch so an PayPal ausgegeben.

comment:15 by Ronald Parcinski, 10 years ago

Resolution: fixed
Status: newclosed

In 9721:

fix #850, fix #854

comment:16 by Ronald Parcinski, 10 years ago

Bei 2.x wurde das etwas anders gefixt, es wurde ein $state = ; in diese Codeblöcke hinzugfügt, das sollte zum selben Ergebnis führen.

if (xtc_db_num_rows($zone_query) == 1) {
        $zone = xtc_db_fetch_array($zone_query);
        $zone_id = $zone['zone_id'];
        $state = '';
      } else {
        $error = true;
        $messageStack->add('create_account', ENTRY_STATE_ERROR_SELECT);
      }

comment:17 by Torsten Riemer, 10 years ago

Resolution: fixed
Status: closedreopened

Auch das hier ist noch nicht behoben.

Ich habe eine Testbestellung als Kunde durchgeführt mit folgenden Daten:

Vorname: Max
Nachname: Mustermann
Straße: Musterstr. 123
Ort: New York
PLZ: 12345
Bundelasnd: New York
Land: United States

Gemäß zugeordneter address_format (ID = 2 für "United States") müsste die Aufgabe über die "print_order" auf der "checkout_success" wie folgt erfolgen:

Max Mustermann
Musterstr. 123
New York, New York 12345
United States

Es kam jedoch:

Max Mustermann
Musterstr. 123
New York, 12345
United States

Auch in der Bestellbearbeitung ist das Feld "Bundesland" komplett leer!

comment:18 by renevogtland@…, 10 years ago

Die Deaktivierung der Einträge in der DB Tabelle address_book in der Spalte entry_state funktioniert nur bei der Version 1.06, da hier der Name des Bundeslandes bei der checkout_process noch anders als nur über diese Spalte ausgelesen wird. Bei 2.x wird aber definitiv auf diese Spalte bei der Bestellabwicklung zugegriffen.

comment:19 by renevogtland@…, 10 years ago

Es geht etwas schief bei der Definition des Eintrages in die DB Tabelle address_book Spalte entry_state. In der Zeit als ich die aktuelle create_account.php und die create_guest_account.php mit dem Code

$sql_data_array['entry_state'] = $state;

bei v1.06 rev 4642 SP4 im Einsatz hatte gibt es in der entry_state korrekte Einträge mit Bundesland Namen und falsche Einträge mit der Bundesland ID. Der Fehler trat nicht immer auf. Komme aber nicht dahinter warum.

comment:20 by Ronald Parcinski, 10 years ago

Bei 2.00 fehlte noch eine Zuordnung in der classes/order.php

Jetzt wird auch bei 2.00 auch das Bundesland korrekt beim Bestellabschluss in die DB geschrieben.

Wobei es immer noch einen Unterschied gibt:

Ausgabe im Adressbuch:

Test User
Teststr. 111
New York, NY 12345
United States

Ausgabe in der Druckansicht und im Backend bei den Bestelldaten:

Test User
Teststr. 111
New York, New York 12345
United States

Es wird einmal die offizielle Abkürzung und einmal Komplettname ausgegeben

comment:21 by Ronald Parcinski, 10 years ago

Resolution: fixed
Status: reopenedclosed

In 9724:

fix #850

comment:22 by Ronald Parcinski, 10 years ago

In 9725:

fix #850, fix #854

comment:23 by Torsten Riemer, 10 years ago

Resolution: fixed
Status: closedreopened

Bei der Bestellbearbeitung sind nun die Felder Bundesland unter "Versandadresse" & "Rechnungsadresse" gefüllt. Nicht aber unter "Kundenadresse"!

Ist es so aufwendig die Ausgabe im Adressbuch zu vereinheitlichen?

Bei der Kundenregistrierung wird übrigens "address_book.entry_state" überhaupt nicht befüllt! Es wird nur in "address_book.entry_zone_id" geschrieben.

comment:24 by Ronald Parcinski, 10 years ago

Kundenregistrierung wird übrigens "address_book.entry_state":

Das Feld nur befüllt wenn es keine Bundesländer gibt, aber Bundesländer als Pflichtfeld definiert werden. Dann erscheint ein einfaches Eingabefeld, diese Einagben werden dann gespeichert.

Das ist alles unglaublich kompliziert umgesetzt.

Problem mit Kundenadresse ist jetzt auch behoben.

comment:25 by Ronald Parcinski, 10 years ago

Resolution: fixed
Status: reopenedclosed

In 9728:

fix #850

comment:26 by Torsten Riemer, 10 years ago

Alle Einträge in der Bestellung unter "Kundenadresse" sind jetzt leer. Es wird nun gar nichts mehr befüllt.

Es kann doch kein Hexenwerk sein im Adressbuch das Bundesland vollständig anzuzeigen und nicht nur die Abkürzung.

comment:27 by Torsten Riemer, 10 years ago

Resolution: fixed
Status: closedreopened

comment:28 by Ronald Parcinski, 10 years ago

Resolution: fixed
Status: reopenedclosed

In 9734:

fix #850

comment:29 by Ronald Parcinski, 10 years ago

Im Adressbuch ist die Anzeige richtig, das ist die internationale Abkürzung. Das war schon immer so im System.

http://www.deutscheindenusa.com/schreibweise-amerikanischer-adressen/

comment:30 by Torsten Riemer, 10 years ago

Alles klar, dann eben an den anderen Stellen vereinheitlichen. ;-)

Version 0, edited 10 years ago by Torsten Riemer (next)

comment:31 by Torsten Riemer, 10 years ago

Resolution: fixed
Status: closedreopened

comment:32 by Ronald Parcinski, 10 years ago

Resolution: fixed
Status: reopenedclosed

In 9735:

fix #850

in reply to:  20 comment:33 by Torsten Riemer, 10 years ago

Resolution: fixed
Status: closedreopened

Replying to web28:

[...]
Wobei es immer noch einen Unterschied gibt:

Ausgabe im Adressbuch:

Test User
Teststr. 111
New York, NY 12345
United States

Ausgabe in der Druckansicht und im Backend bei den Bestelldaten:

Test User
Teststr. 111
New York, New York 12345
United States

Es wird einmal die offizielle Abkürzung und einmal Komplettname ausgegeben

Das bitte noch überall vereinheitlichen auf die Kurzform, damit auch order_mail.html und print_order.html mit der für die USA beispielsweise korrekten Kurzform versehen wird.

comment:34 by Ronald Parcinski, 10 years ago

Resolution: fixed
Status: reopenedclosed

Da beides richtig ist und das schon immer so war lasse ich das erst einmal so wie es ist.
Dazu wären dann noch ganz anders Stellen zu ändern.

Das kann man alles machen wenn Gerhard die die Klasse programmiert.

Modify Ticket

Action
as closed The owner will remain somebody.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.