Bestell-Email an Hersteller schicken

Hallo miteinander!

Ich habe vor den Bestellprozess etwas anzupassen, sodass bei einer eingehenden Bestellung die jeweilige E-Mail nicht an die unter Stammdaten–>Grundeinstellungen hinterlegte Adresse versendet wird, sondern an die des jeweiligen Herstellers.

Um das zu ermöglichen, habe ich in der Datenbank-Tabelle oxmanufacturers eine neue Spalte angelegt, in der die Hersteller-Email-Adressen eingetragen werden können.

Mir ist klar, dass es zu Komplikationen kommen würde, wenn sich Produkte verschiedener Hersteller in der Bestellung befinden, weshalb ich das Hinzufügen von Produkten verschiedener Hersteller zum Warenkorb unterbunden habe.

Jetzt stehe ich nur noch vor dem Problem, dass ich in der Email.php die richtige Adresse ziehe. Offensichtlich ist diese Zeile dafür verantwortlich:

$this->setRecipient($oShop->oxshops__oxowneremail->value, $oLang->translateString("order"));

In der E-Mail selbst ziehe ich mir die Information wie folgt:

[{assign var=_product value=$basket->getContents()|@end}]
[{assign var="oArticle" value=$_product->getArticle()}]
[{assign var="manufacturer" value=$oArticle->getManufacturer()}]
[{$manufacturer->oxmanufacturers__oxmanumail->value}]

Habt ihr einen Tipp, wie ich aufgrund der bestellten Produkte an meine hinterlegte Zelle komme?

Danke euch!

PS: Befinde mich auf der 6.1.3

getOrderArticles()

Für eine minimal ausführlichere Antwort wäre ich sehr dankbar :slight_smile:

Über oxorderarticles__oxartid den Artikel laden und wieder über getManufacturer() darauf zugreifen.

Danke für deine Hilfe. Hab es nun geschafft. Ich war nur etwas verwirrt, weil ich gar nicht über die oxartid gehen, sondern direkt das Objekt des Artikels laden musste:

$articles = $oOrder->getOrderArticles(false);
        foreach ( $articles as $article ) {
            $a = $article->getArticle();
            $b = $a->getManufacturer();
            if (empty($b->oxmanufacturers__oxmanumail->value)) {
                $this->setRecipient($oShop->oxshops__oxowneremail->value, $oLang->translateString("order"));
            } else {
                $this->setRecipient($b->oxmanufacturers__oxmanumail->value, $oLang->translateString("order"));
            }
         }