Jump to content

Kunden bekommen Rechnung in falsche Sprache


Atwist

Recommended Posts

Hallo

Mein Webshop ist 2 Sprachig Deutsch und Holländisch alles ist darauf eingestellt nun bekommen die Holländer die Rechnung auf Holländisch aber die Deutsche Kunden bekommen auch die Rechnung auf Holländisch.

Ich kann es nicht finden woran dass liegt

Deutsche Site ist vorhanden

Rechnung ist auf Deutsch

Email ist alles auf Deutsch

Wo muss ich jetzt suchen???????

Link to comment
Share on other sites

Ja alles ist da.

Aber es ist ein Bug in Prestashop

Diese Texte kommt von Github

Dass Problem

Die Lösung ????

Quote

Today when you click the two buttons Invoice and Delivery-slip, PrestaShop generates a PDF in employee language.

Issue:
Often a delivery slip is printed from AdminOrders and put into the customers package before shipping. If a customer speaks another language that what language is set in the current logged in employee/admin, he will get a delivery slip / invoice in a language he cannot understand.

Solution:
Generate PDFs in customer context language, not employee.

Alternative:
Modify buttons to be dropdowns instead, with select options:

    Customer language
    Employee language

Bin grade dabei mich hiermit schlau zu machen

Link to comment
Share on other sites

Jetzt bin ich beschäftigt eine invoiceDE.tpl zu basteln, hab grade gemerkt dass ich die neue Datei nicht zu ordnen kann.

Wenn ich es ändere dann ändere ich es auch für die Holländische Sprache, hiermit bin ich am Ende mein können was Prestashop betrifft.

Ich hoffe dass jemand noch ein Idee hat.  

 

Invoice.png

Link to comment
Share on other sites

Am 31.12.2019 um 3:07 PM schrieb Atwist:

Wenn ich es ändere dann ändere ich es auch für die Holländische Sprache

wie kommst du darauf ? alle sprachen sind getrennt und haben miteinander nichts zutun und sie müssen in Ordnern vorhanden sein und wen du mehrsprachig anbietest kannst du sprach modul aktivieren für die Sprachauswahl der besucher.

Link to comment
Share on other sites

On 12/31/2019 at 3:07 PM, Atwist said:

Jetzt bin ich beschäftigt eine invoiceDE.tpl zu basteln, hab grade gemerkt dass ich die neue Datei nicht zu ordnen kann.

Du darfst sie nicht ins normale pdf-Verzeichnis speichern, sondern sie gehört mit allen eventuellen Unterdateien in ein gleichnamiges Unterverzeichnis deines Themes.

Link to comment
Share on other sites

5 hours ago, SliderFlash said:

wie kommst du darauf ? alle sprachen sind getrennt und haben miteinander nichts zutun und sie müssen in Ordnern vorhanden sein und wen du mehrsprachig anbietest kannst du sprach modul aktivieren für die Sprachauswahl der besucher.

Die Seite ist in Deutsch und Holländisch

Deutsche Kunden bekommen Email auf Deutsch Rechnung (PDF) in Holländisch

Holländische Kunden Bekommen Email und Rechnung auf Holländische

 

Site in Deutsch.png

site in Holländisch.png

Link to comment
Share on other sites

44 minutes ago, Wuschel said:

Du darfst sie nicht ins normale pdf-Verzeichnis speichern, sondern sie gehört mit allen eventuellen Unterdateien in ein gleichnamiges Unterverzeichnis deines Themes.

Mann macht etwas um weiter zu kommen.

 

Link to comment
Share on other sites

22 hours ago, Atwist said:

Mann macht etwas um weiter zu kommen.

Na ja, aber ich habe die Erfahrung gemacht, statt Versuch-und-Irrtum ist ein Blick ins Handbuch oder auch eine gezielte Foren-, noch besser: Google-Suche hilfreicher und effektiver. Prestashop ist nun mal recht komplex und man braucht eine ganze Weile, um da erst mal durchzublicken.

Link to comment
Share on other sites

39 minutes ago, Wuschel said:

Na ja, aber ich habe die Erfahrung gemacht, statt Versuch-und-Irrtum ist ein Blick ins Handbuch oder auch eine gezielte Foren-, noch besser: Google-Suche hilfreicher und effektiver. Prestashop ist nun mal recht komplex und man braucht eine ganze Weile, um da erst mal durchzublicken.

Auch dies ist alles schon gemacht, aber niemand hat oder Kent ein Lösung.

Dass merkt Mann auch hier es gibt wenig Reaktionen.

Link to comment
Share on other sites

15 hours ago, Atwist said:

Dass merkt Mann auch hier es gibt wenig Reaktionen.

Wozu auch, denn das ist schon so oft diskutiert worden! Es gibt allerdings Leute,  die nicht daran denken, erst im Forum zu suchen. 😊

Prestashop gibt die Rechnung immer in der jeweiligen Sprache des Back Office (Mitarbeiters) aus. Um das zu ändern, braucht man entweder ein Modul oder muss die Kundensprache via Core-Änderung erzwingen. Näheres dazu findest du beispielsweise hier: 

 

Edited by Wuschel (see edit history)
Link to comment
Share on other sites

Es gab mal Zeiten, da war dieses Forum gut frequentiert und man konnte hier durchaus viele Informationen und Hilfe erhalten, das ist aber Geschichte, leider... Sicher werden die meisten Beiträge dann veröffentlicht, aber im Grunde genommen ist zumindest das deutsche Forum so gut wie tot....

Link to comment
Share on other sites

Das gilt leider nicht nur für das deutsche Forum, sondern für alle übrigen auch - vielleicht mit Ausnahme des französischen. Ansonsten überall nur Fragen und Probleme, aber kaum noch Antworten. Und um interessante Diskussionen zu finden, muss man Jahre zurück gehen.

Link to comment
Share on other sites

2 hours ago, Wuschel said:

Prestashop gibt die Rechnung immer in der jeweiligen Sprache des Back Office (Mitarbeiters) aus. Um das zu ändern, braucht man entweder ein Modul oder muss die Kundensprache via Core-Änderung erzwingen. Näheres dazu findest du beispielsweise hier:

Dass stimmt mein BO ist in Holländisch.

Danke für diesen Tipp ich mach mir mal schlau.

 

Link to comment
Share on other sites

Tut mir leid. Ich wollte es dir einfach machen, habe aber inzwischen auch dieselbe Erfahrung gemacht. Das Modul funktioniert nicht. Mit der im selben Thread veröffentlichten Core-Änderung ( hier wird eigentlich nur eine Code-Zeile ergänzt) funktioniert es aber tadellos.

https://www.prestashop.com/forums/topic/155422-module-download-invoice-in-customer-language/?tab=comments#comment-1346231

Wir haben die seit Jahren als Override im Einsatz.

Edited by Wuschel (see edit history)
Link to comment
Share on other sites

Das ist ja nicht die Standardrechnung von Prestashop. Sind denn die Variablen in deiner Vorlage englisch oder holländisch? 

Korrekt müssten sie aussehen wie in dem folgenden Beispiel, und zwar immer in Englisch:

{l s='Unit Price' pdf='true'}

 

52 minutes ago, SliderFlash said:

schon nachgeschaut ? unter Verlauf/Bestellungen/Rechnungen/ Rechnungsoptionen
da ist auch Einstellungen

Dort kann man keine Sprache einstellen, sondern allenfalls das Rechnungsformular auswählen.

Link to comment
Share on other sites

Und wieder hat das fehlkonfigurierte Forum einen Post von mir verhindert. Es kann doch nicht sein, dass man selbst Variablen eines Rechnungsformulars nicht mehr posten kann, weil dann gleich die Zensur ("aus Sicherheitsgründen") zuschlägt. In der Administration dieses Forums gibt es eindeutig ein Kompetenzproblem.

Link to comment
Share on other sites

2 hours ago, Wuschel said:

Das ist ja nicht die Standardrechnung von Prestashop. Sind denn die Variablen in deiner Vorlage englisch oder holländisch? 

Korrekt müssten sie aussehen wie in dem folgenden Beispiel, und zwar immer in Englisch:

Doch hier ist nichts an verändert, so kommen halt die Rechnungen bei mir raus.

Meine Vorlagen sind immer Englisch.

Link to comment
Share on other sites

Ich bin ganz fertig mit Prestashop.

Habe mein BO auf Deutsch gestellt bekomme jetzt auch Rechnungen in Deutsch und die Holländer müssen sich gewönnen an einen Rechnung auf Deutsch.

Will kein zeit mehr in Prestashop stecken aber die zeit stecke ich in meine auftrage.

Ich danke euch für euere Unterstützung.

Link to comment
Share on other sites

vor 15 Stunden schrieb Wuschel:

Und wieder hat das fehlkonfigurierte Forum einen Post von mir verhindert.

Es ist immer noch das gleiche gängige Wort (Spr_che) auf das der Wachhund trainiert ist!

Zum Thema, ich habe einen einspr_chigen Shop und kenne mich mit der Materie nicht aus, aber wenn sich die Spr_ache der Rechnung nach der Spr_ache des Mitarbeiters im BackOffice richtet, kann man dann nicht einen deutsch- und einen holländischspr_achigen Mitarbeiter einrichten und mit diesem die Bestellungen in der jeweiligen Spr_ache bearbeiten?

Ansonsten würde ich die Rechnung wenigstens zweispr_chig gestalten.

Link to comment
Share on other sites

  • 1 year later...
On 1/14/2020 at 9:33 AM, Atwist said:

So kann ich es auch noch mach.

Es ist unfassbar, dass das Wort language auf Deutsch ein böses Wort ist.
Das ist aus meiner Sicht genauso unentschuldbar, wie die Fixierung der Rechnungspr@che an die Spr@che des aktuellen Backoffice Benutzers.
Wer immer sich sowas ausdenkt muss fern jeder Realität eines mehrspr@chigen Internetshops sein.

Der Ratschlag, mit einem anderen User sich im Backoffice anzumelden ist eine Notlösung, mit der man sich nur schwer anfreunden kann.
Natürlich MUSS die Rechnung in der Spr@che des Kunden erscheinen, weil die Rechnung ja auch für ihn, seine Buchhaltung und ggf. den lokalen Zollbehörden ist. In der Regel wird das wahrscheinlich englisch sein (für deutsche Shops), es sei denn man unterstützt noch mehr Spr@chen.

Es gibt sogar ein Modul zum Kaufen für 69,90 oder so - finde es aber aktuell nicht mehr.
Anekdotisch ist übrigens, dass der Artikel in der gewählten Spr@che des Kunden erscheint (english z.B.) nur die Überschriften und statischen Texte in der Rechnung nicht.

Die Änderung ist nur für die Rechnung nur in einer Klasse vorzunehmen:
HTMLTemplateInvoice.php

Im Konstruktor (__construct) sind die letzten 3 Zeilen hinzuzufügen:

        // header informations
        $this->date = Tools::displayDate($order_invoice->date_add);
        $this->shop = new Shop((int) $this->order->id_shop);
		
        $this->translator=Context::getContext()->getTranslator();
        if ($this->order->id_lang==2) $this->translator->setLocale(Language::getIsoById($this->order->id_lang));
        $this->title = $order_invoice->getInvoiceNumberFormatted(1);
    }

In der Funktion getHeader() ist die auskommentierte Zeile mit der darunter zu ersetzen:

    public function getHeader()
    {
        $this->assignCommonHeaderData();
//        $this->smarty->assign(['header' => Context::getContext()->getTranslator()->trans('Invoice', [], 'Shop.Pdf')]);
        $this->smarty->assign(['header' => $this->translator->trans('Invoice', [], 'Shop.Pdf')]);
        return $this->smarty->fetch($this->getTemplate('header'));
    }

Und die zusätzliche Variable translator ist am Anfang der Klasse zu definieren:

class HTMLTemplateInvoiceCore extends HTMLTemplate
{
    public $order;
    public $order_invoice;
    public $available_in_your_account = false;
    public $translator;

Folgende Hinweise noch dazu:
In meinem Shop ist die Defaultspr@che Deutsch (id_lang=1) und die zusätzlich installierte Spr@che Englisch hat "id_lang=2". Das Überschreiben der translator Locale hat bei der Defaultspr@che nicht funktioniert - aus welchen Gründen auch immer wurde dann auch die Rechnung auf englisch erstellt. Die Rechnungsnummer habe ich bewusst nicht angepasst, ich wüsste auch nicht, warum die Rechnungsnummer mit der Spr@che wechseln sollte. Das Finanzamt findet das vermutlich auch nicht lustig, wenn in Rechnungsnummernkreisen ständig Lücken entstehen. Insofern ist weder der Dateiname noch der gedruckte Belegname "übersetzt" sondern bleibt simple auf der Standardsprache (RExxxxxxx).

Bei mir funktioniert es einwandfrei. Habe einige Lösungen im Internet ausprobiert aber ab 1.7.x.x. scheint sich Einiges geändert zu haben. 

Viel Spass damit - wer immer künftig Rechnungen auf Deutsch und Englisch braucht.
Dürften wohl nicht wenige Prestashop Kunden sein.
 

Link to comment
Share on other sites

Ich habe jetzt nochmal eine Änderung an dem Script vorgenommen, weil der o.g. Mod nur mit Einzelrechnungen funktioniert, nicht aber mit einer Rechnungsliste nach Datumsbereich (Rechnungen von ... bis). 

Dazu brauchen wir noch eine Variable bulk_mode im Konstruktor:

class HTMLTemplateInvoiceCore extends HTMLTemplate
{
    public $order;
    public $order_invoice;
    public $available_in_your_account = false;
    public $translator;
    public $bulk_mode;

Language wird im bulk_mode nicht gesetzt (!)

        // header informations
        $this->date = Tools::displayDate($order_invoice->date_add);
        $this->shop = new Shop((int) $this->order->id_shop);
		
        $this->bulk_mode=$bulk_mode;
        $this->translator=Context::getContext()->getTranslator();
        if (!$bulk_mode) {
            if ($this->order->id_lang>1) $this->translator->setLocale(Language::getIsoById($this->order->id_lang));
        }
        $this->title = $order_invoice->getInvoiceNumberFormatted(1);
    }

Und im getHeader() wird der lokale Translator im bulk_mode nicht verwendet.

    public function getHeader()
    {
        $this->assignCommonHeaderData();
        $this->smarty->assign(['header' => Context::getContext()->getTranslator()->trans('Invoice', [], 'Shop.Pdf')]);
        if (!$this->bulk_mode) {
            if ($this->order->id_lang>1) $this->smarty->assign(['header' => $this->translator->trans('Invoice', [], 'Shop.Pdf')]);
        }
        return $this->smarty->fetch($this->getTemplate('header'));
    }

Im Ergebnis kann man die Rechnung dann auf Deutsch und Englisch drucken, je nachdem, was der Kunde bei der Bestellung gewählt hat.
Beim Rechnungsdownload in einem Sammelpdf (was durchaus wünschenswert ist für Archivierungszwecke) erscheinen dann alle Rechnungen in der S_p_r_a_c_h_e des angemeldeten Benutzers im Backoffice. Also z.B. auf Deutsch obwohl der Kunde eine Rechnung auf Englisch erhalten hat. Finde ich durchaus nützlich, weil die eigenen Unterlagen so alle gleich auf Deutsch sind.

 

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...