Jump to content
Birel34

Telefonnummer Eingabe Backend Kunde wo?

Recommended Posts

Hallo Zusammen

 

Entweder sehe ich es nicht oder es geht nicht...

 

Ein Kunde der sich angemeldet und auch eine Bestellung getätigt hat, hat unter "Kunden - Adressen" im Feld "Adresse" folgendes eingetragen "7 Pütenweg" anstatt "Pütenweg 7".

Nun wollte ich das anpassen.

Beim Speicher verlangt er noch eine Telefonnummer.

Leider finde ich unter "Kunden - Kunden" und unter "Kunden - Adresse" niergends die Möglichkeit die Telefonnummer einzugeben.

Dieses Feld fehlt bei mir.

 

In den Einstellungen unter "Voreistellungen - Kunden" habe ich das Feld "Telefonnumer ist ein Pflichtfeld" auf JA gestellt.

 

Wo kann man dann die Telefonnumer eingeben?

 

Besten Dank für die Antwort.

 

Freundliche Grüsse

Rolando

Share this post


Link to post
Share on other sites

:D Unglaublich! Das war mir noch gar nicht aufgefallen. Da hat wohl tatsächlich jemand beim PrestaTeam aus Versehen die Telefonnummer-Felder aus dem Admin gelöscht.

 

Ich habe mal ein kurzes Override für den Controller geschrieben, um den Fehler zu beheben. Spiel den Inhalt der Zip-Datei mal als Übergangslösung in das Verzeichnis /overrides/controller/admin ein:

AdminAddressesController.zip

 

Anschließend entweder STRF+F5 im Back Office drücken oder den Cache anderweitig löschen.

 

EDIT: Merkwürdig! Seltsamerweise sind die Felder jetzt auch ohne Override wieder da. Nur ein Cache-Fehler?

Share this post


Link to post
Share on other sites

Hallo und besten Dank für die Hilfe

 

Leider bringt das File nichts... :(

 

Habes ins Verzeichnis override/controllers/admin hochgeladen, bin dann auf Erweiterete Einstellungen / Leistung gegangen mit der Einstellung im SMAYRT / Templates nach Datei-Änderungen neu kompilieren und habe oben auf Chache löschen geklick.

 

Unter Kunden / Adressen wähle ich eine Adresse an und klicke auf Bearbeiten und es öffnet sich die Adresse des Kunden ohn Telefonnummerfeld.

Auch wenn ich auf Neue Adresse hinzufügen klicke, sehe keine Felder für die Telefonnummer.

 

Wenn ich nun im Bereich Kunden/Adressen ganz nach unten scrole, gibt es da noch eine Linie mit "+Legen Sie zusätzliche Pflichtfelder für diesen Bereich fest".

Nun klicke ich drauf und es öffnet sich ein Pulldown Menu mit diversen Eintragen unterandermen phone und phone_mobile.

Wenn ich nun in diese beiden Feldern den Hacken setze, sieht man die Felder in der Adressdatei des Kunden.

Nun kann man aber nur noch speichern, wenn man eine Nummer eingibt.

 

Es muss doch auch eine möglichkeit geben dass das freiwillig geht!

 

Oder was meisnt Du?

:mellow::huh: :huh: :o

 

PS: Soll ich das File löschen?

Edited by Birel34

Share this post


Link to post
Share on other sites

Damit wir hier nicht aneinander vorbei reden ...

Welche PrestaShop-Version setzt du ein?

Gibt es Fremdmodule, z.B. auch im Cache-Bereich?

Ist dieses Verhalten im Back Office neu oder war es von Anfang an so?

Share this post


Link to post
Share on other sites

Hallo

Ja... sorry... hätte ich noch angeben können... vergessen...

Ich verwende Version PS 1.6.1.5.

Fremdmodule, Silbersaiten - Aufschläge und Rabatte auf Zahlungsarten / Silbersaiten - Zahlung bei Abholung  / Delete orders / Module Bestell-Nr. ändern.

Ob es früher so schon wahr, kann ich mich nicht erinnern, mir ist es erst jetzt aufgefallen.

 

Habe noch einen Testanmeldung über den Shop gemacht ganz normal und habe eine Telefonnummer angegeben, in der Adfministartion sieht man davon nichts.

 

Ach ja noch, musste Dein File löschen, weil mit dem File konnte keine Anmeldung stattfinden, beim speichern weisse Seite... fertig abbrechen.

 

Auch in den anderen Shops gleiche Version, sieht man die Telefonnummern nicht.

 

Mein Shop: LifeStyle-Shop.ch

Weitere Shop: Yvis-Shop.ch

 

Besten Dank.

 

PS: Danke für die Beschreibung in einem anderen Beitrag für die Anpassung der Rechnung und des Lieferschein, speziell oben Rechts mit "INVOICE" und "DELIVERY" diese beiden Wörter waren nur in English... :)

Edited by Birel34

Share this post


Link to post
Share on other sites

Hoi Rolando,

 

prüfe mal unter

BO-->Lokalisierung-->Länder ob für alle aktivierten Länder (jeweils auf bearbeiten gehen) in der Adressanzeige (Linker Kasten) die Tel.Nummern enthalten sind; wenn nicht hinzufügen , speichern u. Cache Löschen.

Das Problem ist, dass, wenn in einem der Länder die Tel. Nummer vorhanden ist, der Kunde immer die Tel-Felder zur Verfügung hat, auch wenn für sein Land die Felder ausgeblendet sind, als Admin siehst du die Felder dann allerdings nicht.

 

Grüsse

Whiley

Share this post


Link to post
Share on other sites

Hallo Whiley

 

Besten Dank für Deine Antwort.

 

Habe es nun versucht.

Wenn ich im Adressfeld, siehe Bild, die Telefon und Mobil hinzufüge, erscheinen dann die Telefonnummern im Adressfeld des Lieferscheins und der Rechnung.

Zugleich sehe ich dann die Telefonnummerfelder unter Kunden-Adressen.

Wenn ich diese nicht aktiviert habe, ist das Adressfeld richtig auf dem Lieferschein und der Rechnung, mit dem Nachteil, dass ich die Felder dann unter Kunden-Adressen nicht sehe.

 

Hier stimmt doch was nicht?

 

post-919129-0-26986400-1463557324_thumb.jpg

 

LI-1551261-1.pdf

 

Oder was meist Du dazu?

 

Danke für die Antwort.

 

Gruss

Rolando

Share this post


Link to post
Share on other sites

Hallo Zusammen...

 

Keiner eine Idee an was es liegen kann??? :( :( :(

 

Gruss

Share this post


Link to post
Share on other sites

Ah, jetzt verstehe ich erstmal, was du meinst!

Ich tippe mal auf eins deiner Kaufmodule. Welches der Fremdmodule dafür verantwortlich ist, kannst du entweder dadurch herausfinden, ob im Modul-Verzeichnis ein Unterordnet pdf ist, oder du deaktivierst mal systematisch solche Fremdmodule, um den Übeltäter zu finden.

Share this post


Link to post
Share on other sites

Ah, jetzt verstehe ich erstmal, was du meinst!

Ich tippe mal auf eins deiner Kaufmodule. Welches der Fremdmodule dafür verantwortlich ist, kannst du entweder dadurch herausfinden, ob im Modul-Verzeichnis ein Unterordnet pdf ist, oder du deaktivierst mal systematisch solche Fremdmodule, um den Übeltäter zu finden.

 

Imo ist das kein Fehler durch ein Fremdmodul, sondern das ganz normale Verhalten von Prestashop. Der AdminAdress-Controller prüft welche länderspezifischen Einstellungen gemacht wurden und zeigt im BO nur die Felder an, die für das entsprechende Land festgelegt sind, was ja auch eigentlich garnicht so ganz unsinnig ist.

Legst du länderspezifisch fest, daß eine Tel.Nr. im Adressfeld erscheinen soll (z.B. für Paketdienst) dann ist das Feld Tel.Nr. auch im BO vorhanden und editierbar. Braucht man die Tel.Nr. nicht, kann man sie seitens des Shopbetreibers auch nicht bearbeiten, das ist dann allein Sache des Kunden.

 

Will man alle Felder zum editieren zur Verfügung haben muß halt die Datei:

/controllers/admin/AdminAddressesController.php

entsprechend abgeändert werden. (mit etwas php-Kenntnissen sicher kein Problem, die Funktionen sind dort nahetzu selbsterklärend)

 

Eventuell könnte man auch darüber nachdenken die Tel.Nr. Anzeige im BO einzuschalten u. dann die Rechnung u. Lieferscheinausdrucke abzuändern und die Tel.Nr. dort auszublenden. (imo aufwändiger)

 

Grüsse

Whiley

Share this post


Link to post
Share on other sites

Hallo Whiley

 

Herzlichen Dank für Deine Erklärung.

 

Ja Deine Überlegungen sind ja nachvollziehbar.

Ich finde… dass im Adressfeld, Anschrift an den Kunden, die Telefonnummer nicht erscheinen soll.

Hingehen im BO ja. Sollte man was Rückfragen müssen, hat man die Telefonnummer.

Editierbar muss sie nichts ein, der Kunde kann entscheiden.

Das Feld Telefon-Nummer und auch Mobile müssen auch nicht Pflichtfelder sein.

 

Habe mich mal in der Datei: controllers/admin/AdminAddressesController.php

Und habe diesen Abschnitt gefunden, der auf Telefonnummern weisst.

 

 

);
            } elseif ($addr_field_item == 'phone') {
                $temp_fields[] = array(
                    'type' => 'text',
                    'label' => $this->l('Home phone'),
                    'name' => 'phone',
                    'required' => in_array('phone', $required_fields) || Configuration::get('PS_ONE_PHONE_AT_LEAST'),
                    'col' => '4',
                    'hint' => Configuration::get('PS_ONE_PHONE_AT_LEAST') ? sprintf($this->l('You must register at least one phone number.')) : ''
                );
            } elseif ($addr_field_item == 'phone_mobile') {
                $temp_fields[] = array(
                    'type' => 'text',
                    'label' => $this->l('Mobile phone'),
                    'name' => 'phone_mobile',
                    'required' =>  in_array('phone_mobile', $required_fields) || Configuration::get('PS_ONE_PHONE_AT_LEAST'),
                    'col' => '4',
                    'hint' => Configuration::get('PS_ONE_PHONE_AT_LEAST') ? sprintf($this->l('You must register at least one phone number.')) : ''
                );

 

Nun stellt sich bei mi8r die Frage, was muss ich denn da anpassen?

Kannst Du mir einen Typ geben?  

 

Herzlichen Dank.

Rolando

Share this post


Link to post
Share on other sites

Kann mir da nun einer weiterhelfen?

Vielleicht formulierst du deine Frage(n) einmal so, daß man versteht, was du nun überhaupt willst. So hast du im ersten Post geschrieben, du habest eingestellt, daß eine Telefonnummer angegeben werden muß, scheinst das aber nicht so zu wollen ...

Share this post


Link to post
Share on other sites

Hallo

Hier nochmals meine Formulierung detailliert:

Damit ich die Telefonnummer der Kunden unter "BO->Kunden->Adressen" sehen kann, siehe Bild:

 

post-919129-0-99347700-1471768558_thumb.png

 

muss ich im "BO->Lokalisierung->Läder" folgende Zeilen hinzufügen, siehe Bild:

 

post-919129-0-07755200-1471768724_thumb.png

 

wenn ich nun das so gemacht habe passiert folgendes, im Lieferschein und der Rechnung wird dann auch die Telefonnummer aufgelistet, sieh Bild:

 

post-919129-0-82984900-1471768975_thumb.png

 

Wie sieht den das aus, erkennt jemand hier einen Telefonnummer oder sind es sogar zwei!!!
Das geht so nicht.

 

Mein Ziel: Telefonnummern im "BO->Kunden->Adressen" JA / Auf Rechnung und Lieferschein im Adressfeld NEIN

 

So nun hoffe ich, dass auch Du mich verstanden hast.

 

 

Share this post


Link to post
Share on other sites

Mein Ziel: Telefonnummern im "BO->Kunden->Adressen" JA / Auf Rechnung und Lieferschein im Adressfeld NEIN

Ja, das ist schlecht gelöst, vor allem gar nicht so einfach zu ändern, da die Adressen komplett mit Telefonnummer Inhalt einer Variable sind.

Share this post


Link to post
Share on other sites

Ja, das ist schlecht gelöst, vor allem gar nicht so einfach zu ändern, da die Adressen komplett mit Telefonnummer Inhalt einer Variable sind.

 

Naja, halt in beiden, also Lieferschein und Rechnung,  Telefon herausnehmen!

 

Z.B. für die Rechnung:

In der Datei

/classes/pdf/HTMLTemplateInvoice.php

die Zeile suchen:

 

$formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');

 

Darunter dann die Zeile eingeben, die die Tel.Nr. herausnimmt:

 

$formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', ' ');

 

Caches nicht vergessen zu löschen

 

Grüsse

Whiley

  • Like 1

Share this post


Link to post
Share on other sites

Naja, halt in beiden, also Lieferschein und Rechnung,  Telefon herausnehmen!

Erstaunlich einfach, man muß halt nur wissen wie (und das wissen die meisten hier eben nicht, meine PHP-Kenntnisse beschränken sich auch so ziemlich auf das, was es so auch in JavaScript gibt) ...

Share this post


Link to post
Share on other sites

Hallo Whiley

Danke für Deinen Vorschlag, ich werde es mal versuchen...  :)

 

Und beim Lieferschein, gilt das das gleiche und wo?

Share this post


Link to post
Share on other sites

Hallo Whiley

Habe es versucht, leider ohne Erfolg, bei mir bleibt die Telefonnummer immer noch drauf in der Rechnung und dem Lieferschein.

Share this post


Link to post
Share on other sites

Hallo Whiley

Habe es versucht, leider ohne Erfolg, bei mir bleibt die Telefonnummer immer noch drauf in der Rechnung und dem Lieferschein.

 

ich habe die Änderung für die Rechnungsadresse gerade mal im Demo-Shop gemacht

https://www.prestashop.com/forums/topic/464197-prestashop-1616-demoshop/

 

Das Ergebnis sieht so aus:

post-467854-0-57433400-1471861886_thumb.jpg

 

Imo funktionierts.

 

Evtl mal prüfen ob du die class schon durch andere Änderungen überschreibst (entweder im override oder du hast im Template Ordner die Dateine - mit Vorrang - nochmal)

Um zu prüfen ob du überhaupt an der richtigen Datei arbeitest, kanst du die php-Datei kurz umbenennen u. eine Rechnung im BO generieren, du müsstest in dem Fall eine ziemlich weisse Seite bekommen)

Und auf jeden Fall immer alle Caches löschen!!!

 

Grüsse

Whiley

Share this post


Link to post
Share on other sites

Hallo Whiley

Ja... habe es gesehen... im Demo Shop geht es...

 

Ich habe die Datei umbenennt und anstelle der Rechnung kann Fehlermeldung 505.

Datei zurück benennt und geht.

 

Nun habe ich die Zeile eingefügt und es sieht so aus:

 

 

         $country = new Country((int)$invoice_address->id_country);

         $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');
         $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', ' ');
 
         $delivery_address = null;

 

Habe extra noch eine Zeil davor und danach mitgenommen damit Du siehst das ich richtig bin.

 

Die Rechnung sieht immer noch gleich aus, mit Telefonnummer:

 

post-919129-0-86268400-1471864204_thumb.png

 

PS: Chach immer gelöscht nach jeder Änderung.

 

 

 

Share this post


Link to post
Share on other sites

 

PS: Chach immer gelöscht nach jeder Änderung.

 

Lösche  mal die Datei

/cache/class_index.php

 

und in den beiden Ordnern

/cache/smarty/cache

/cache/smarty/compile

alles bis auf die Datei index.php

 

und natürlich den Browser-Cache

 

Grüsse

Whiley

Share this post


Link to post
Share on other sites

Hallo Whiley

Habe alles so gemacht wie Du es Beschrieben hast, Telefonnummer ist immer noch da...

Share this post


Link to post
Share on other sites

Hallo Whiley

Habe alles so gemacht wie Du es Beschrieben hast, Telefonnummer ist immer noch da...

Setze doch mal vor oder nach die beiden br-Tags (innerhalb der ') "Test1" und "Test2" (ohne ") und schau, ob und was davon angezeigt wird.

Share this post


Link to post
Share on other sites

Hallo und gute Tag

 

Habe den Versuch gemacht ohne Erfolg.

 

Habe in der classes/pdf/HTMLTemplateInvoice.php die beiden Wörter eingesetzt und zwar so:

 

 

$formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', 'Test1');

$formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', 'Test2');

 

und die Rechnung sieht so aus

 

post-919129-0-64552500-1472028576_thumb.png

 

 

Share this post


Link to post
Share on other sites

attachicon.gifTelNr-03.PNG

 

Wie sieht den das aus, erkennt jemand hier einen Telefonnummer oder sind es sogar zwei!!!

Das geht so nicht.

 

So etwas passiert halt, wenn man nicht weiß, was man tut! :wacko:

Denn du selbst hast einen Querstrich zwischen die beiden Variablen gemacht und  beide Telefonnummern in eine Zeile geschrieben. Das ist nämlich nicht üblich. Auf diese Weise hast du ein bis dato unbekanntes Feld kreiert.

 

Einfacher wäre es, den Standard beizubehalten (für jede Variable eine Zeile in der Adressdefinition des Landes) und die Zeilen

$delivery_address = new Address((int)$this->order->id_address_delivery);
$formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' ');
 

wie folgt zu erweitern:

$delivery_address = new Address((int)$this->order->id_address_delivery);

$formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' ');

$formatted_delivery_address = str_replace($delivery_address->phone, '', $formatted_delivery_address );

$formatted_delivery_address = str_replace($delivery_address->phone_mobile, '', $formatted_delivery_address );

 

Analog kann man auch für die Rechnung ($invoice_...) verfahren.

Share this post


Link to post
Share on other sites

Hallo eleazar
 
Besten Dank für Deinen Vorschlag.
Hier meine Original-Datei:
 

 

       $delivery_address = new Address((int)$this->order->id_address_delivery);

        $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' ');
        $formatted_invoice_address = '';

 

Ich habe diese mit Deinem Vorschlag angepasst und sieht nun so aus:

 

 

        $delivery_address = new Address((int)$this->order->id_address_delivery);

        $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' ');
        $formatted_delivery_address = str_replace($delivery_address->phone, '', $formatted_delivery_address );
        $formatted_delivery_address = str_replace($delivery_address->phone_mobile, '', $formatted_delivery_address );
        $formatted_invoice_address = '';

 

Das Resultat, der Lieferschein:

 

post-919129-0-44133700-1472033316_thumb.png

 

Das wo die Telefonnummer stand, steht jetzt einen null "0".

 

Habe das Ganze auch bei der Datei "HTMLTemplateInvoice.php" versucht.

 

Hier das Original

 

 

        $invoice_address = new Address((int)$this->order->id_address_invoice);

        $country = new Country((int)$invoice_address->id_country);
        $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');
        $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', ' ');
 

 

Angepasst:

 

 

        $invoice_address = new Address((int)$this->order->id_address_invoice);

        $country = new Country((int)$invoice_address->id_country);
        $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');
        $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', ' ');
        $formatted_invoice_address = str_replace($invoice_address->phone, '', $formatted_invoice_address );
        $formatted_invoice_address = str_replace($invoice_address->phone_mobile, '', $formatted_invoice_address );

 

Resultat:

 

post-919129-0-01680200-1472033705_thumb.png

 

Hier bleibt alles beim Alten.

 

Nun weiss ich nicht, ob ich was falsch gemacht habe.

 

Danke.

 

 

 

 

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Siehst du, und das ist jetzt der Zeitpunkt, wo du dir sagen solltest: Ich kann nicht in einem User-Forum endlos Threads mit Code-Schnipseln füllen, die ich leider selbst nicht verstehe - sondern ich muss jetzt einen Experten beauftragen, der dies für mich erledigt. Das wurde dir ja mehr oder weniger schon hier nahegelegt: https://www.prestashop.com/forums/topic/550454-lieferschein-mit-liefer-und-rechnungsadresse%E2%80%A6/?do=findComment&comment=2390076

 

Hier bietet sich das Unterforum Jobsuche an.

Share this post


Link to post
Share on other sites

ok... trotzdem herzlichen Dank...

 

Nun muss ich aber die Grundsatzfrage stellen, auch wenn es eine Open Source Lösung ist, ist es ein geniales Tool, leider noch mit einigen Fehlern drin, die von Haus aus nicht sein sollten.

Wo kann man die den Melden?

Ich kenne zur Zeit nur dieses Forum.

Share this post


Link to post
Share on other sites

Habe den Versuch gemacht ohne Erfolg.

 

Habe in der classes/pdf/HTMLTemplateInvoice.php die beiden Wörter eingesetzt und zwar so:

Du mußt dich schon genau an die Anleitung halten, wenn ich schreibe

 

vor oder nach die beiden br-Tags (innerhalb der ')

 

meine ich ganz bestimmt nicht, daß du die Teststrings woanders hin in ganz andere ' platzieren sollst ...

 

Nun, bei der Lieferanschrift bist du ja schon weiter, wo die Null jetzt herkommt, ist mir jetzt auch nicht so ganz klar, ich würde mal versuchen, bei

 

$formatted_delivery_address = str_replace($delivery_address->phone, 'Leerzeichen', $formatted_delivery_address );
        $formatted_delivery_address = str_replace($delivery_address->phone_mobile, 'Leerzeichen', $formatted_delivery_address );
 
dort, wo ich "Leerzeichen" ergänzt habe, statt diesem Text ein Leerzeichen einzusetzen.
 
Bei der Rechnungsadresse fällt mir auf, daß die 4. Zeile wohl zuviel ist.
 
Was die Fehler und sonstigen To-Dos von Prestashop angeht, selbst mehrere tausend Euro teure Software ist nicht fehlerfrei oder erfüllt alle Wünsche. Im allgemeinen kannst du davon ausgehen, daß erfahrenere User sich damit bereits beschäftigt haben, die Programmierer von Prestashop sind zur Zeit aber vor allem mit der Arbeit an der kommenden Version 1.7 ausgelastet.

Share this post


Link to post
Share on other sites

Hallo rictools

 

Herzlichen Dank für Deinen Vermutung... die "0" / null ist weg...

Es lag nur am Leerschlag / Leerzeichen.

 

Hab es auch in der "HTMLTemplateInvoice.php" angepasst und die Zeile rausgenommen... aber alles beim Alten, die Tel-Nummer ist immer noch ersichtlich.

 

Hier noch, wie jetzt er Abschnitt aussieht:

 

 

  public function getContent()

    {
        $invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true);
        $deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true);
 
        $invoice_address = new Address((int)$this->order->id_address_invoice);
        $country = new Country((int)$invoice_address->id_country);
        $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');
        $formatted_invoice_address = str_replace($invoice_address->phone, ' ', $formatted_invoice_address );
        $formatted_invoice_address = str_replace($invoice_address->phone_mobile, ' ', $formatted_invoice_address );
 
        $delivery_address = null;
        $formatted_delivery_address = '';
        if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) {
            $delivery_address = new Address((int)$this->order->id_address_delivery);
            $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' ');
        }

 

Vielleicht siehst Du auch hier noch was...

Nochmals Herzlichen Dank...
Hast eine gute Flasche Wein zu gute...

Edited by Birel34

Share this post


Link to post
Share on other sites

Hallo Rolando,

 

Im obigen Code fällt auf, dass du die Änderungen bei "$formatted_delivery_address" noch nicht gemacht hast, aber das ist ja nicht dein Hauptproblem.

 

Ich sehe zwei Möglichkeiten.

 

Entweder du beschäftigst dich mit Debug-Techniken und verfolgst die Adress-Variable bis zur eigentlichen Ausgabe der Rechnung. Da du vermutlich keine Debug-Werkzeuge installiert hast gibst du die Variableninhalte auf den Monitor aus und stoppst danach unmittelbar das Skript.

Du müstest also in der Datei HTMLTemplateInvoice.php anfangen mit soetwas wie

 

        var_dump ($formatted_invoice_address);
        exit;

 

 nach den geänderten Zeilen einfügen und dich dann weiter durchhangeln.

 

Oder - da die Änderungen im Demo-Shop mit den Originaldateien ja astrein funktioniert - dürfte es das speditivste sein, wenn du alle am Rechnungsausgabevorgang beteiligten Dateien in den Originalzustand zurückversetzt und  ganz neu anfängst.

 

Grüsse

Whiley

Share this post


Link to post
Share on other sites

Hallo Whiley

 

Passt fast perfekt...  :)

 

Habe, wie Du geschrieben hast, diesen Code noch angefügt nach den zwei zusätzlichen Zeilen und das sieht jetzt so aus:

 

 

   public function getContent()

    {
        $invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true);
        $deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true);
 
        $invoice_address = new Address((int)$this->order->id_address_invoice);
        $country = new Country((int)$invoice_address->id_country);
        $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');
        $formatted_invoice_address = str_replace($invoice_address->phone, ' ', $formatted_invoice_address );
        $formatted_invoice_address = str_replace($invoice_address->phone_mobile, ' ', $formatted_invoice_address );
        var_dump ($formatted_invoice_address);
        exit;
 
        $delivery_address = null;
        $formatted_delivery_address = '';
        if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) {
            $delivery_address = new Address((int)$this->order->id_address_delivery);
            $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' ');
            $formatted_delivery_address = str_replace($delivery_address->phone, ' ', $formatted_delivery_address );
            $formatted_delivery_address = str_replace($delivery_address->phone_mobile, ' ', $formatted_delivery_address );
            var_dump ($formatted_invoice_address);
            exit;
        }

 

und das Ergebnis folgendermassen:

 

post-919129-0-69713300-1472138216_thumb.png

 

Telefonnummern sind weg... 

Nun schreibt es aber das Land hin... also im Beispiel oben "Schweiz"

 

Beim Lieferschein steht hingegen das Kurzel des Landes vor der PLZ.

 

post-919129-0-17419200-1472138758_thumb.png

 

Ist das noch eine grosse Sache um es anzupassen?

 

Herzliche Grüsse

Rolando

 

 

 

 

 

Share this post


Link to post
Share on other sites

Langsam wird's unübersichtlich. Ist das der komplette Code? Da scheint mir nämlich eine } zu fehlen. Das kann alles durcheinanderbringen ...

Share this post


Link to post
Share on other sites

 

 

und das Ergebnis folgendermassen:

 

post-919129-0-69713300-1472138216_thumb.

 

Telefonnummern sind weg... 

Nun schreibt es aber das Land hin... also im Beispiel oben "Schweiz"

 

Beim Lieferschein steht hingegen das Kurzel des Landes vor der PLZ.

 

post-919129-0-17419200-1472138758_thumb.

 

 

Versteh ich nicht, mit dem exit-Befehl müsste das Skript eigentlich stoppen????

 

Also der richtige Code in der HTMLTemplateInvoice.php müsste so aussehen:

 

 public function getContent()

    {

        $invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true);

        $deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true);

 

        $invoice_address = new Address((int)$this->order->id_address_invoice);

        $country = new Country((int)$invoice_address->id_country);

        $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');

        $formatted_invoice_address = str_replace($invoice_address->phone, '', $formatted_invoice_address );

        $formatted_invoice_address = str_replace($invoice_address->phone_mobile, '', $formatted_invoice_address );

        $formatted_invoice_address = str_replace($invoice_address->country, '', $formatted_invoice_address );

 

        

        $delivery_address = null;

        $formatted_delivery_address = '';

        if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) {

            $delivery_address = new Address((int)$this->order->id_address_delivery);

            $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' ');

                    $formatted_delivery_address = str_replace($invoice_address->phone, '', $formatted_delivery_address );

                    $formatted_delivery_address = str_replace($invoice_address->phone_mobile, '', $formatted_delivery_address );

                    $formatted_delivery_address = str_replace($invoice_address->country, '', $formatted_delivery_address );

        }

 

Grüsse

Whiley

Share this post


Link to post
Share on other sites

Mir scheint da immer noch eine schließende geschweifte Klammer zu fehlen (ich vermute, daß deshalb die ganze Funktion nicht ausgeführt wurde). 

Share this post


Link to post
Share on other sites

Hallo Whiley

 

Herzlichen Dank für den Code.

Habe den Eingebaut und folgendes Resultat kommt dabei heraus:

 

Kunde mit Telefonnummer:

 

post-919129-0-45736400-1472200924_thumb.png

 

Kunde ohne Telefonnummer:

 

post-919129-0-44762600-1472200950_thumb.png

 

 

Im Code einen geschweifte Klammer die auf geht, aber ich finde nicht wo zu, in Zeile 15, ganz am Schluss.

Braucht es die oder beeinflusst die was.

 

 

 

 

     public function getContent()
     {
     $invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true);
     $deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true);

     $invoice_address = new Address((int)$this->order->id_address_invoice);
     $country = new Country((int)$invoice_address->id_country);
     $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' ');
     $formatted_invoice_address = str_replace($invoice_address->phone, '', $formatted_invoice_address );
     $formatted_invoice_address = str_replace($invoice_address->phone_mobile, '', $formatted_invoice_address );
     $formatted_invoice_address = str_replace($invoice_address->country, '', $formatted_invoice_address );
 
        
     $delivery_address = null;
     $formatted_delivery_address = '';
     if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) {
        $delivery_address = new Address((int)$this->order->id_address_delivery);
        $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' ');
                    $formatted_delivery_address = str_replace($invoice_address->phone, '', $formatted_invoice_address );
                    $formatted_delivery_address = str_replace($invoice_address->phone_mobile, '', $formatted_invoice_address );
                    $formatted_invoice_address = str_replace($invoice_address->country, '', $formatted_invoice_address );
        }

 

Wenn ich die lösche, geht nichts mehr,  beim generieren der Rechnung kommt ein "error 505" Meldung.

 

Herzliche Grüsse

Rolando

Share this post


Link to post
Share on other sites

Die gescheiften Klammern sind so alle ok!

Rictools meint die erste geschweifte Klammer, aber die wird ja sowieso am Ende der Funktion (also viel weiter unten) korrekt geschlossen. Hier abgebildet ist ja nur der kleinere erste Teil der Funktion mit den Änderungen.

 

Aber ich sehe gerade, es hat sich noch ein kleiner Fehler in den Code eingeschlichen, ich habe ihn in meinem post #35 korrigiert, bitte kopiere ihn nochmal neu in deine Datei.

 

Grüsse

Whiley

Share this post


Link to post
Share on other sites

Hallo Whiley

 

Haben den Versuch durchgeführt und musste feststellen, dass erneut die Telefonnummern ersichtlich sind anstelle vom Land ausgeschrieben, wie im Beitrag #37 Bild 1.

 

Herzliche Grüsse

Rolando

Share this post


Link to post
Share on other sites

Hallo Whiley

 

Haben den Versuch durchgeführt und musste feststellen, dass erneut die Telefonnummern ersichtlich sind anstelle vom Land ausgeschrieben, wie im Beitrag #37 Bild 1.

 

Herzliche Grüsse

Rolando

In #37 Bild 1 sehe ich keine Tel. Nr

post-467854-0-53332900-1472208966_thumb.jpg

Share this post


Link to post
Share on other sites

Hallo Whiley

 

Sorry...  :ph34r:  habe mich versehen... wohl die Brille nicht auf der Nase gehabt.

Also in #37 Bild 1 steht "Schweiz", das Land ausgeschrieben und jetzt anstelle vom Land die Telefonnummer.

Bitte nochmals um Entschuldigung.  B)

 

Herzliche Grüsse

Rolando

Share this post


Link to post
Share on other sites

Hallo Whiley

 

Ja... es geht im DemoShop... perfekt...  :)  :)  :)

 

Habe nun die Originaldatei "HTMLTemplateInvoice.php" nochmals aufgerufen und den Code aus #35 reinkopiert, hochgeladen.

 

Nun habe ich sicherheitshalber den Chach nochmals gelöscht, einen neuen Kunden Angelegt und einen Bestellung durchgeführt.

 

Ergebnis:

 

Lieferschein:

 

post-919129-0-79483200-1472211681_thumb.png

 

Rechnung:

 

post-919129-0-16358800-1472211699_thumb.png

 

Im Lieferschein wird in der Bereich Rechnungsadresse auch die Telefonnummer angezeigt und auf der Rechnung bei beiden Orten...

 

Hier muss demzufolge, muss ich annehmen, was anderes dazwischen funken... das es ja im DemoShop geht.

Am ehesten eine zusätzliches Modul.

 

Ich werde mal die Module, die mit dem Zahlungsprozess zu tun haben, einzel deaktivieren und dann mal schauen was sich verändert.

 

Oder was meinst Du?

 

Herzliche Grüsse

Rolando

 

 

 

Share this post


Link to post
Share on other sites

Ich habe den Verdacht, daß der geänderte Code nicht oder nur teilweise ausgeführt wird, entweder weil sich ein Syntaxfehler darin befindet oder weil gar nicht dieser Codeteil für die Formatierung zuständig ist (oft gibt es die gleichen Dateien / Anweisungen ja einmal im Haupt- und einmal im Themebereich, deshalb hatte ich die Teststrings vorgeschlagen, die du dann aber an eine falsche Stelle gesetzt hattest, so sieht man, ob der Code an der Stelle sich überhaupt auswirkt, eine professionellere Alternative war die von Whiley vorgeschlagene Testausgabe eines Variableninhaltes mit anschließendem Stopp, was ja gar nicht funktioniert hatte).

Share this post


Link to post
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

×

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More