Woher zieht Gambio den Wert für die Versandart (PDF_INFO_SHIPPING) auf der Rechnung?

Thema wurde von benjamin_nawara, 29. Februar 2024 erstellt.

  1. benjamin_nawara
    benjamin_nawara Neues Mitglied
    Registriert seit:
    29. Februar 2024
    Beiträge:
    4
    Danke erhalten:
    0
    Danke vergeben:
    3
    Aloha :)

    Ich habe für uns ein eigenes Versandmodul erstellt, damit wir die angebotenen Workshops aus der Berechnung der "Kostenloserversand"-Grenze raus rechnen können.

    Nun ist es so, dass auf der Rechnung die Versandart angedruckt wird. Und hier wird "NawaraITVersand" verwendet (siehe Bild im Anhang). Ich wüsste gerne, woher er diesen Wert nimmt bzw. wo ich einstellen kann, dass er einen anderen Text nimmt.

    Es ist der Name der Datei & des Moduls, das ist ja okay, aber für mehr soll es nicht genutzt werden. In der Language datei habe ich "TEXT_TITLE', 'Pauschal-Versand');" definiert. Im Admin-Bereich wird das auch korrekt im Modul angezeigt, aber wie schon gesagt, ich will den der Rechnung einen anderen Text haben.

    Schon Mal ein dickes Danke für die Hilfe im Voraus :)

    Viele Grüsse,
    Benjamin
     

    Anhänge:

  2. Walter Lenk
    Walter Lenk Erfahrener Benutzer
    Registriert seit:
    28. September 2011
    Beiträge:
    623
    Danke erhalten:
    300
    Danke vergeben:
    113
    Guten Morgen Benjamin,

    ich habe das schnell mal in einem unserer Testshops für das Versandkostenmodul "flat" (= pauschale Versandkosten) getestet.

    Dort ist es so dass der Text der Phrase "MODULE_SHIPPING_FLAT_TEXT_TITLE" dafür benutzt wird. Ändere ich ihn über "Texte anpassen" ab, ändert sich der Text auch auf der Rechnung. Zugleich ist der Text der welcher bei den Versandarten in der Spalte 1 "Modul" angezeigt wird.

    Es gibt nun verschiedene Möglichkeiten:
    • Fehler beim Testing
    • kein Standardverhalten wegen Deiner individuellen Modulumsetzung
    Grüße
    Walter
     
  3. benjamin_nawara
    benjamin_nawara Neues Mitglied
    Registriert seit:
    29. Februar 2024
    Beiträge:
    4
    Danke erhalten:
    0
    Danke vergeben:
    3
    Merci fürs Feedback.

    Ich Arbeite mit dateien im lang ordner. Und dort ist es einmal gesetzt:
    Code:
    define('MODULE_SHIPPING_VERSANDPAUSCHALE_TEXT_TITLE', 'Versandpauschale');
    
    Genau so im eigentlichen Modul:
    Code:
    $this->title       = defined('MODULE_SHIPPING_VERSANDPAUSCHALE_TEXT_TITLE') ? MODULE_SHIPPING_VERSANDPAUSCHALE_TEXT_TITLE : 'Versandpauschale';
    
    Und interessanter Weise wird es auch überall entsprechend angezeigt, im Betsellprozess, im Admin-Bereich -> Versandarten, nur auf der Rechnung wird stupide der Modulname übernommen :-(

    Mein Workaround ist jetzt, ich habe das Modul in "versandpauschale" umbenannt, jetzt wird immerhin das angedruckt.

    Müsste mal gucken, in welcher Tabelle die Texte sitzen und dort auch mal einen Eintrag für "MODULE_SHIPPING_VERSANDPAUSCHALE_TEXT_TITLE" setzen. Vielleicht ist die Rechnung die einzige Stelle, die nur aus der DB und nicht aus der lang Datei liest.
     
  4. Walter Lenk
    Walter Lenk Erfahrener Benutzer
    Registriert seit:
    28. September 2011
    Beiträge:
    623
    Danke erhalten:
    300
    Danke vergeben:
    113
    Guten Morgen Benjamin,

    ich nehme an Caches (insbesondere Cache für Texte und Cache für Module) hast Du auch schon geleert oder?

    Warum hast Du denn den Text nochmals hart im Modul als Fallback? Wenn das Zusammenspiel der Texte korrekt funktioniert benötigst Du das eigentlich nicht nochmals.

    Grüße
    Walter
     
  5. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    17. Oktober 2018
    Beiträge:
    140
    Danke erhalten:
    78
    Danke vergeben:
    18
    Hallo Benjamin.

    Ist das so korrekt? Bei mir in Version 4.8.0.2 stehen in den Sprachdateien der Versandmodule die Textzuweisungen immer nur im Array t_language_text_section_content_array und werden dort nirgends als Konstante mit define gesetzt.
     
  6. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    17. Oktober 2018
    Beiträge:
    140
    Danke erhalten:
    78
    Danke vergeben:
    18
    Das dürften die Tabellen language_phrases_cache und language_phrases_edited sein.
    Code:
    SELECT * FROM `language_phrases_cache` WHERE phrase_name LIKE "MODULE_SHIPPING%TEXT_TITLE";
    SELECT * FROM `language_phrases_edited` WHERE phrase_name LIKE "MODULE_SHIPPING%TEXT_TITLE";
     
  7. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    17. Oktober 2018
    Beiträge:
    140
    Danke erhalten:
    78
    Danke vergeben:
    18
    Nein, es wird auch hier der languageTextManager bemüht. Wie das Teil arbeitet, steht hier https://www.gambio.de/forum/threads/language-handling.23997/#post-199060

    Ein Blick in die OrderPdfManager.php macht es verständlicher:
    Code:
    <?php
    /* --------------------------------------------------------------
      OrderPdfManager.php 2022-09-29
    
    879                 if ($this->languageTextManager->get_text($phraseName, $section, $this->languageId) !== $phraseName) {
    880                     $orderInfo['SHIPPING_METHOD'][1] = trim(html_entity_decode_wrapper(strip_tags($this->languageTextManager->get_text($phraseName,
    881                                                                                                                                        $section,
    882                                                                                                                                        $this->languageId))));
    883                 } elseif ($this->languageTextManager->get_text($phraseName, 'shipping_' . $section, $this->languageId)
    884                           !== $phraseName) {
    885                     $orderInfo['SHIPPING_METHOD'][1] = trim(html_entity_decode_wrapper(strip_tags($this->languageTextManager->get_text($phraseName,
    886                                                                                                                                        'shipping_'
    887                                                                                                                                        . $section,
    888                                                                                                                                        $this->languageId))));
    889                 } else {
    890                     $orderInfo['SHIPPING_METHOD'][1] = $shippingModuleName;
    891                 }
    Allerdings scheint hier eine andere Logik programmiert zu sein. Als Fallback wird hier dann der tatsächliche Name des Versandmoduls zugewiesen. Das wird der Effekt sein, den Du beobachtest.

    Diesen Thread kennst Du?
    https://www.gambio.de/forum/threads...gs-modul-keine-texte-aus-sprachdateien.33357/
     
  8. benjamin_nawara
    benjamin_nawara Neues Mitglied
    Registriert seit:
    29. Februar 2024
    Beiträge:
    4
    Danke erhalten:
    0
    Danke vergeben:
    3
    Das habe ich erst gemacht, als ich gesehen haben, dass der Wert aus der lang Datei nicht gezogen wird. Hat in der Tat keinen Effekt.
     
  9. benjamin_nawara
    benjamin_nawara Neues Mitglied
    Registriert seit:
    29. Februar 2024
    Beiträge:
    4
    Danke erhalten:
    0
    Danke vergeben:
    3
    Ich bin ehrlich, das Versand-Modul ist schon älter, hatte das schon 2014 programmiert und 2018 um die lang Dateien erweitert. Damals waren die wohl noch so. Allerdings funktioniert es ja noch für fast alles :cool:

    Danke für deine nützlichen Links. Werde die lang Datei mal entsprechend umbauen und gucken, ob es dann zieht.