Anfrage-Formular Ordernumber im Formular übergeben

Hallo, beim Anfrage-Formular wird die Ordernumber (Bzw. Artikelnummer oder Bestellnummer) nicht mitgesendet. Dies macht die Zuordnung zum Produkt schwierig. Da aber im Textfeld mit einem Standart-Text der Artikelname mit übergeben wird, dachte ich mir, dass ich unter Einstellungen/Textbausteine/forms fündig werden würde, und dort ein {$details.ordernumber} einfügen könnte. Leider habe ich dort den besagten Text-Schnippsel nicht gefunden. Wo könnte ich Ihn finden? Beste Grüße

Hi, also ausschlaggebend ist hier die Datei: engine/Shopware/Controllers/Frontend/Forms.php Schau mal in Zeile: 115 Dort findest du: $element["value"] = $text; Das kann man schon durch folgendes ersetzen: $element["value"] = $text." - ".htmlspecialchars($this-\>Request()-\>sOrdernumber); Dadurch wird die Artikelnummer direkt an den Namen angehängt.

7 „Gefällt mir“

Super, klappt auch mit Konfigurator Artikeln, das macht das ganze leichter. Danke.:thumbup: Wie kann ich das auf weitere selbst angelegte Formulare übertragen? Sprich Artikelnummer/Name ins Textfeld übernehmen: Beispielsweise: „Ihre Anfrage zur Verfügbarkeit des Artikels „X“ mit der Bestellnummer123“

1 „Gefällt mir“

[quote=„MichaelF“] Wie kann ich das auf weitere selbst angelegte Formulare übertragen? Sprich Artikelnummer/Name ins Textfeld übernehmen: [/quote] Das würde mich btw, auch interessieren.

danke, das hab ich auch gerade gebraucht. (btw. bei meiner datei befindet sich der entsprechende code in zeile 141 - dürfte wohl zwischenzeitlich schon ein wenig erweitert worden sein.)

Hallo Zusammen,

Darf ich fragen wie ich das in SW5 umsetze?
Dies funktioniert da leider nicht.

Beste Grüsse
Arya_Svitkona

 

 

if ($element["name"] == "inquiry" && !empty($this->Request()->sInquiry)) {
    switch ($this->Request()->sInquiry) {
        case "basket":
            $text = Shopware()->Snippets()->getNamespace('frontend/detail/comment')->get('InquiryTextBasket');
            $getBasket = Shopware()->Modules()->Basket()->sGetBasket();
            //$text = ''; Fix 100363 / 5416 Thanks to H. Ronecker
            foreach ($getBasket["content"] as $basketRow) {
                if (empty($basketRow["modus"])) {
                    $text .= "\n{$basketRow["quantity"]} x {$basketRow["articlename"]} ({$basketRow["ordernumber"]}) - {$basketRow["price"]} " . Shopware()->System()->sCurrency["currency"];
                }
            }
            if (!empty($text)) {
                $this->_elements[$id]["value"] = $text;
                $element["value"] = $text." - ".htmlspecialchars($this->Request()->sOrdernumber);
            }
            break;
        case "detail":
            if ($this->Request()->getParam('sOrdernumber', null) !== null ) {
                $getName = Shopware()->Modules()->Articles()->sGetArticleNameByOrderNumber($this->Request()->getParam('sOrdernumber'));
                $text = Shopware()->Snippets()->getNamespace('frontend/detail/comment')->get('InquiryTextArticle');
                $text .= " " . $getName;
                $this->_elements[$id]["value"] = $text;
                $element["value"] = $text." - ".htmlspecialchars($this->Request()->sOrdernumber);
            }
            break;
    }
}

 

In Shopware 5 musst Du die Zeile 174 $element[“value”] = $text; abändern in $element[“value”] = $text." - ".htmlspecialchars($this->Request()->sOrdernumber);

dann funktioniert es.

 

1 „Gefällt mir“

Hat nach dem kompilieren des Templates funktioniert :slight_smile:
Danke!

Das ist dann aber nicht update-sicher?

Ne, ist es nicht, das stimmt!
Lässt sich jedoch sonst nur über ein Modul/Plugin lösen.

Ich mache mir pro Projekt eine Liste mit „ACHTUNG: Punkten“, welche ich bei einem Update zur Erinnerung rufe.

Danke für den Lösungsansatz,

die Möglichkeit die ordernumber mit einzubeziehen sollte meienr Meinung nach mit in den Standard.

Ich werd ein Ticket erstellen.

 

Gruß,

MArkus Satler