Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Geänderte Lieferadresse (bei Standardadresse) ändert auch die Rechnungsadresse

    kotzbrocken

    • Frisch an Board
    • Beiträge: 55
    Moin,

    ich muss das Thema bezogen auf Ticket #2495 und Ticket #2517 noch einmal aufgreifen, da bis dato in der neuen Version 3.0.2-r15701 noch keine Änderung bzw. geplanter Hinweistext erfolgt bzw. umgesetzt ist.

    Ich hätte da noch einen zusätzlichen Lösungsvorschlag, den ich bei mir so umgesetzt habe.
    Ziel ist es in der checkout_shipping_address.php NUR bei der Standardadresse (Rechnungsadresse) den „Bearbeiten“ bzw. „Ändern“ Button zu entfernen oder alternativ mit dem „Neue Adresse“ Button zu ersetzen.

    Es ist dafür nur 1 Änderung am Hardcode (nicht updatesicher) notwendig, die restlichen Änderungen sind über Templates machbar.
    Soll optional neben den Namen der Standardadresse der Hinweis (Rechnungsadresse) zugefügt werden, ist auch eine Änderung in der /lang/german/lang_german.conf nötig (das wäre dann auch nicht updatesicher).

    Zuerst muss in der /includes/modules/checkout_address_layout.php folgendes eingefügt werden.

    Suche:

    Code: PHP  [Auswählen]
    while ($addresses = xtc_db_fetch_array($addresses_query)) {
    $format_id = xtc_get_address_format_id($addresses['country_id']);
    $address_book_id = (isset($billto) && $billto ? $billto : $_SESSION['sendto']);

    Dahinter einfügen:
    Code: PHP  [Auswählen]
    if ($addresses['address_book_id'] == $_SESSION['customer_default_address_id']) {
    $primary = 1;
    } else {
    $primary = 0;
    }
    $address_content_array[] = array ('PRIMARY' => $primary);

    In der jeweiligen Template-Datei /templates/TEMPLATENAME/module/checkout_shipping_address.html folgendes suchen:
    Code: PHP  [Auswählen]
    {if isset($module_data.BUTTON_EDIT)}<span class="icon">{$module_data.BUTTON_EDIT}</span>{/if}
    {if isset($module_data.BUTTON_CONTINUE)}<span class="icon">{$module_data.BUTTON_CONTINUE}</span>{/if}

    Ersetzen mit:
    Code: PHP  [Auswählen]
    {if $module_data.PRIMARY == '1'}{if isset($module_data.BUTTON_CONTINUE)}<span class="icon">{$module_data.BUTTON_CONTINUE}</span>{/if}
    {else}
    {if isset($module_data.BUTTON_EDIT)}<span class="icon">{$module_data.BUTTON_EDIT}</span>{/if}
    {if isset($module_data.BUTTON_CONTINUE)}<span class="icon">{$module_data.BUTTON_CONTINUE}</span>{/if}{/if}
    Je nach Template muss die <span class="icon"> entfernt werden (z. B. tpl_modified und xtc5).
    Beim Template bootstrap4 muss die <span class> entsprechend angepasst werden.

    Damit die neue Lieferadresse nicht als Standardadresse angelegt werden kann, müsste in der Template-Datei /templates/TEMPLATENAME/module/checkout_new_address.php die Checkbox noch ausgeblendet werden.

    Dazu wird in ca. Zeile 93 folgendes geändert:
    Code: PHP  [Auswählen]
    {if $new == '1'}

    Ersetzen mit:
    Code: PHP  [Auswählen]
    {if $new == '0'}

    Alternativ gibt es noch die Möglichkeit, den Neue Adresse bzw. Neue Anschrift Button bei der Standardadresse (Rechnungsadresse) statt den Ändern bzw. Bearbeiten Button im Block anzeigen zu lassen (ACHTUNG: Nur möglich bei den Templates: tpl_modified, xtc5 und bootstrap4).

    Dafür muss in der jeweiligen Template-Datei /templates/TEMPLATENAME/module/checkout_shipping_address.html folgendes gesucht werden:
    Code: PHP  [Auswählen]
    {if isset($module_data.BUTTON_EDIT)}<span class="icon">{$module_data.BUTTON_EDIT}</span>{/if}
    {if isset($module_data.BUTTON_CONTINUE)}<span class="icon">{$module_data.BUTTON_CONTINUE}</span>{/if}

    Ersetzen mit:
    Code: PHP  [Auswählen]
    {if $module_data.PRIMARY == '1'}<span class="icon">{$BUTTON_NEW}{if isset($module_data.BUTTON_CONTINUE)}<span class="icon">{$module_data.BUTTON_CONTINUE}</span>{/if}
    {else}
    {if isset($module_data.BUTTON_EDIT)}<span class="icon">{$module_data.BUTTON_EDIT}</span>{/if}
    {if isset($module_data.BUTTON_CONTINUE)}<span class="icon">{$module_data.BUTTON_CONTINUE}</span>{/if}{/if}
    Je nach Template muss die <span class="icon"> entfernt werden (z. B. tpl_modified und xtc5).
    Beim Template bootstrap4 muss die <span class> entsprechend angepasst werden.

    Optional kann neben den Namen der Standardadresse der Hinweis (Rechnungsadresse) zugefügt werden.
    Dazu in der /lang/german/lang_german.conf im Bereich/Block [checkout_shipping_address] folgendes einfügen:
    Code: PHP  [Auswählen]
    title_billing_address = '(Rechnungsadresse)'

    Zusätzlich in der in der jeweiligen Template-Datei /templates/TEMPLATENAME/module/checkout_shipping_address.html folgendes suchen:
    Code: PHP  [Auswählen]
    <label for="field_addresses_{$module_data.ADDRESS_BOOK_ID}">
    {$module_data.FIRSTNAME} {$module_data.LASTNAME}, {$module_data.CITY}

    Ersetzen mit:
    Code: PHP  [Auswählen]
    <label for="field_addresses_{$module_data.ADDRESS_BOOK_ID}">
    {$module_data.FIRSTNAME} {$module_data.LASTNAME}, {$module_data.CITY} {if $module_data.PRIMARY == '1'}{#title_billing_address#}{/if}

    Keine Ahnung ob dieser Lösungsvorschlag auf Zustimmung trifft und ob dafür ein Ticket angelegt werden soll, damit es als Endlösung beim nächsten Update umgesetzt wird.
    Denn meiner Erfahrung nach ignorieren Kunden gern Hinweistexte, wie es bei #2517 geplant ist.

    P.S.: Sollte bei den Code-Änderungen irgendwas fehlerhaft/unsauber, verbesserungsdürftig/einfacher oder sicherheitstechnisch bedenklich sein, bitte melden!

    Beste Grüße
    Michou

    Linkback: https://www.modified-shop.org/forum/index.php?topic=43266.0

    Markus

    • modified Team
    • Beiträge: 1.396
    • Geschlecht:
    Hi Michou,

    mir geht es bei der Antwort jetzt nicht darum ob das vom Ablauf her stimmiger ist oder nicht.
    Was ich nicht verstehe sind die Änderungen an den Core-Dateien.

    Das kannst du alles ohne Probleme im Template machen.
    Die Standardadresse wird bereits im Template mit einer CSS Klasse versehen.
    Code: PHP  [Auswählen]
    <div class="action_item selected">

    Wie wäre es damit ohne eine Core-Änderung?
    Sowohl in der checkout_shipping_address.html als auch in der checkout_payment_address.html

    Code: PHP  [Auswählen]
    {if $module_data.SELECTED == 1}
      {if isset(BUTTON_NEW)}<span class="icon">{$BUTTON_NEW}</span>{/if}
    {else}
      {if isset($module_data.BUTTON_EDIT)}<span class="icon">{$module_data.BUTTON_EDIT}</span>{/if}
    {/if}

    ... oder übersehe ich da was?

    Markus

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    @kotzbrocken
    Ticket #2495 ist doch gelöst.
    Worin genau besteht denn das Problem ?

    Gruß,
    noRiddle

    kotzbrocken

    • Frisch an Board
    • Beiträge: 55
    @noRiddle
    Aber es ist doch nach wie vor so, dass wenn die Lieferadresse in der checkout_shipping_address.php bearbeitet/geändert wird, sich auch die Rechnungsadresse in der checkout_payment.php ändert. Das will ich damit verhindern.
    Vielleicht mach ich mir in dieser Sache ja auch einen zu großen Kopf und denke zu kompliziert, aber die Rechnungsadresse sollte in der checkout_shipping grundsätzlich nicht bearbeitet/geändert werden dürfen. Dafür ist ja schließlich die checkout_payment_address.php zuständig.

    @Markus
    mit...
    Code: PHP  [Auswählen]
    {if $module_data.SELECTED == 1}
    ... geht das leider nicht. Hab ich anfangs damit auch versucht, auch im Zusammenspiel mit
    Code: PHP  [Auswählen]
    {if $new == '1'}

    Mit dem Selected Befehl gibt es folgendes Problem:
    Wenn man in der checkout_shipping_address.php eine zweite Lieferadresse anlegt und auswählt und erneut von der checkout_shipping.php in die checkout_shipping_address.php geht, wird die zweite Adresse als Standardadresse gesehen und man kann die wirkliche Standardadresse (Rechnungsadresse) wieder bearbeiten.
    Siehe die beiden Bilder.

    Die Änderung an der Core-Datei...
    Code: PHP  [Auswählen]
    if ($addresses['address_book_id'] == $_SESSION['customer_default_address_id']) {
    $primary = 1;
    } else {
    $primary = 0;
    }
    $address_content_array[] = array ('PRIMARY' => $primary);
    ...ist ja übrigens eigentlich nichts anderes wie es in der address_book.php abläuft.

    Beste Grüße
    Michou

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Hab's nicht überprüft.
    Ist es nicht so, daß sich beide, Liefer- und Rechnungsadresse, ändern wenn man ohnehin lediglich eine einzige Adresse hat ?
    Dann sähe ich das nämlich nicht als Fehler an.

    Und warum gilt das Ticket #2495 als gelöst ?
    Wenn du noch irgend ein Veto hast, schreib das doch bitte auch in das Ticket.

    Gruß,
    noRiddle

    kotzbrocken

    • Frisch an Board
    • Beiträge: 55
    Da hast du natürlich recht, Liefer- und Rechnungsadresse ändern sich beide wenn man lediglich eine einzige Adresse hat?
    Wenn es um eine Berichtigung der Adresse geht spricht auch nichts dagegen, dann ist es wirklich kein Fehler.
    Ich hatte bei Bestellungen allerdings schon leider 2-3x den Fall, dass der "Neue Adresse" Button übersehen wurde und die eigentliche Rechnungsadresse dann geändert wurde auf eine neue bzw. andere Lieferadresse. Tja, und schon war die eigentliche Rechnungsadresse futsch.
    Nun gut, wie man sieht kann man sich darüber streiten. ;-)
    Ich hab das jetzt bei mir so umgesetzt und will dann auch kein Fass groß aufmachen. Vielleicht haben ja die anderen Shopbetreiber hier nicht so verpeilte Besteller/Kunden. :lol:

    Beste Grüße
    Michou

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Naja, was heißt Faß aufmachen. Wenn es eine Unlogik gibt die die User-Freundlichkeit beeinträchtigt, sollte jeder Interesse daran haben, daß das gefixt wird.

    Habe ich das richtig verstanden, daß jemand eigtl. eine von der Standard-Adresse (im Normalfall = Rechnungsadresse) abweichende Lieferadresse angeben wollte und, anstatt eine dafür anzulegen, er die Standardadresse geändert hat ?
    Wenn dem so ist ist das nicht so einfach zu lösen und hat dann auch nichts mit Ticket #2495 zu tun.

    Der Kunde sollte ja eigentlich in der Lage sein seine Standardadresse zu ändern. Wenn du das anders möchtest gut, wäre jedoch dann kein Bug oder keine Unzulänglichkeit.

    Gruß,
    noRiddle

    DerNachbar

    • Viel Schreiber
    • Beiträge: 538
    Ja noriddle,

    Kunden machen das täglich. Die Rechnungsadresse (Ladungsfähige Anschrift im Ernstfall) wird dann einfach bestückt mit Postnummer und Packstationadresse (die Standardadresse), weil Kunden nicht peilen (oder peilen wollen), das man weitere Adressen hinzufügen kann, um diese dann als Lieferadresse zu nutzen. Die mehrheit der Kunden rafft es (in meinem Fall), aber halt nicht jeder Kunde ist eine helle Kerze oder fühlt sich genötigt darüber nachzudenken. Das sind halt die Künstler, wo man sich fragt wie die es bisher durchs Leben geschafft haben bis hier her. Wenn man das ganze System dahinter jetzt ändert, weiss ich nicht ob das Einfluss auf das handeln der Kunden haben wird. Die faulen bleiben Faul und machen es wie bisher, der rest der nicht lesen kann, oder will, ignoriert es von Haus aus. Ich sehe aus Shopbetreiber-Sicht nicht, das es im Anschluss signifikante Änderungen geben wird, denn eigentlich sind alle Instrumente schon vorhanden.

    Wie sehr man sich jetzt darüber pickiert ist jedem Shopbetreiber selber überlassen denke ich.  :2cent:

    kotzbrocken

    • Frisch an Board
    • Beiträge: 55
    [...]
    Habe ich das richtig verstanden, daß jemand eigtl. eine von der Standard-Adresse (im Normalfall = Rechnungsadresse) abweichende Lieferadresse angeben wollte und, anstatt eine dafür anzulegen, er die Standardadresse geändert hat ?
    [...]

    Genau so kam es ein paar mal vor. Und das worst case hat der DerNachbar schon beschrieben: Da wird dann in der Standardadresse (und damit Rechnungsadresse) einfach z. B. die Straße der Packstation eingetragen und man hat hinterher keinen Plan wie man die Rechnungsadresse auf der Rechnung angeben soll.

    [...]
    Der Kunde sollte ja eigentlich in der Lage sein seine Standardadresse zu ändern. [...]

    Da hast du natürlich recht, aber meiner Meinung nach dann nur im Adressbuch mit Kundenkonto oder z. B. als Gast nur in der checkout_payment (also per Rechnungsadresse).

    Mit meinem Vorschlag wird ja im Grunde nicht groß in das System eingriffen. Wenn der Kunde seine Lieferadresse ändern will, wird er mit meiner Umsetzung ja nur dazu gezwungen eine neue Adresse anzulegen und diese dann auszuwählen. So bleibt die Rechnungsadresse unberührt.

    Will er die Standardadresse (also auch Rechnungsadresse) ändern kann er das auf der checkout_payment-Seite ja machen. Es ist ja auch weiterhin möglich bei nur einer Adresse die Rechnungsadresse zu ändern, so dass sich beide (Liefer- und Rechnungsadresse) ändern.

    [...]
    Wenn dem so ist ist das nicht so einfach zu lösen und hat dann auch nichts mit Ticket #2495 zu tun.
    [...]

    Dann hab ich das Ticket wohl falsch verstanden, ich dachte es geht da um die checkout_shipping.

    Beste Grüße
    Michou

    AGI

    • modified Team
    • Beiträge: 305
    • Geschlecht:
    Ich kann das Problem zumindest nachvollziehen.
    Kunden und auch Händler scheitern daran.

    Sie registrieren sich, gehen zum Versand, möchten die Versandanschrift ändern, klicken also auf Adresse ändern und verzweifeln dann, weil auch die Rechnungsanschrift auf einmal eine andere ist. - Wenn Sie dass überhaupt merken.

    Ja, es muss eine ideale Lösung dafür gefunden werden. Vielleicht ist es der Vorschlag von @kotzbrocken.
    Vielleicht reicht es auch aus, dass wenn die zu ändernde Anschrift die Standrad-Anschrift ist, beim Speichern eine Auswahlmöglichkeit hinzugefügt wird:
     - Als separate Lieferanschrift speichern
     - Änderung der Standardadresse

    Viele Grüße
    Andreas

    karsta.de

    • Experte
    • Beiträge: 3.156
    Zumindest sollte ein Hinweis da stehen, dass beim Ändern, wenn nur eine Adresse vorhanden ist, die Standardkundenadresse geändert wird.
    Und für Gastbestellungen darf eigentlich gar kein Ändern-Button da sein. An der Stelle sollte nur der Button sein, der eine neue Adresse erstellt und sollte dann eher abweichende Liefer- bzw. Rechnungsanschrift heißen.
    Es sollte in einem Onlineshop alles möglichst intuitiv sein, dann kann man auch davon ausgehen, dass der Kunde sich nicht dumm fühlt.

    BG Karsta

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 13.984
    • Geschlecht:
    Okay. eure Erfahrung in allen Ehren, dann solltet Ihr das ins Ticket schreiben und dieses neu öffnen lassen. Ansonsten geht das wieder unter.

    Gruß,
    noRiddle

    *EDIT* Sehe gerade AGI hat genau das getan, einen Kommentar dazu ins Ticket geschrieben. *END_EDIT*

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    Moin

    Wenn es in der Registrierung schon ein Feld für eine abweichende Lieferadresse geben würde, dann wäre es für viele Kunden gar nicht mehr notwendig auf der checkout_shipping die Adresse zu ändern.

    Wenn ich im Netz einkaufe, dann sehe ich das oft so umgesetzt.

    Ich hab auch immer wieder Rechnungsadressen mit Packstationsangaben und das sind nicht nur importierte Adressen über Paypal Express oder Amazon Pay.

    Und auf dem Handy ist der Button für Neue Adresse fast nicht zu sehen. Bei nicht so langen Geräte sogar im nicht sichtbaren Bereich während der Button zum ändern der Standardsdresse weiter oben und sichtbar ist. Das wird auch dazu führen, dass viele Kunden erstmal darauf klicken. Vielleicht kann man da prominenter einen Button „abweichende Lieferadresse“ platzieren.

    [ Für Gäste sind keine Dateianhänge sichtbar ]

    Gruß Timm

    p3e

    • Experte
    • Beiträge: 2.423
    Ich erlebe auch immer wieder, dass es zu vermeidbaren Verwechslungen kommt. Ich halte es für den Kunden intuitiver und unproblematischer, wenn Rechnungen- und Versandadresse auf einer gemeinsamen Seite angefragt wird. Idealerweise oben die Rechnungsadresse direkt in Inputfeldern vorbelegt
     (die meiner Meinung nach auch die Standardadresse sein sollte) und dann eine Checkboxen "bitte an eine abweichende Lieferadresse senden". Wenn man die ankreuzt, öffnen sich die Inputfelder der Lieferadresse auf der selben Seite (also ohne neu zu laden). Ist bereits eine abweichende Lieferadresse aus vorhergegangenen Bestellungen bekannt, wird diese bei den Inputfeldern für die Lieferadresse auch schon vorbelegt.

    Im Idealfall werden die Felder einfach mit den Daten der letzten Bestellung des Kunden vorbelegt und Standart- und Rechnungsadresse sind grundsätzlich die selben. Die Möglichkeit hier zu unterscheiden und diverse Adressen zu speichern und ggf. abzurufen ist für 99,9999% meiner Kunden eine ungenutzte Funktion die alles komplizierter macht.
    Auch sehr ich es vorteilhaft, direkt vorgelegte Inputfelder zu nutzen. So kann die Adresse bei Bedarf direkt angepasst werden ohne einen Link zu klicken

    Ist natürlich nur meine Meinung und meine Kundestruktur.

    Timm

    • Fördermitglied
    • Beiträge: 6.255
    :good:
    Shop Hosting
    11 Antworten
    10035 Aufrufe
    04. September 2013, 06:53:59 von Ravinhinz
    0 Antworten
    1669 Aufrufe
    04. August 2013, 11:29:02 von deekay99
    5 Antworten
    2794 Aufrufe
    11. Februar 2019, 11:34:47 von beento
    0 Antworten
    948 Aufrufe
    05. Januar 2018, 12:09:51 von D.L.
               
    anything