Jump to content

Wie lässt sich die Bestellbestätigung abschalten?


Recommended Posts

In unserem SHop gibt es nur kostenlose Download-Produkte für angemeldete User.

Daher macht es keinen Sinn immer eine Bestellbestätigung zu verschicken.

 

Derzeit werden pro Download zwei Mails verschickt:

 

1. eine Bestellbestätigung

2. eine Mail mit dem Downloadlink

 

Die erstere möchte ich gerne komplett deaktivieren, weil Sie nicht nötig ist.

 

Obwohl ich unter "Bestellungen > Status" den Status Bestellbestätigung alle Haken entfernt habe,

auch "E-Mail an den Kunden senden, wenn sich der Status ändert" ist deaktiviert, werden trotzdem Bestellbestätigungen verschickt.

 

"Bestellung gilt als bestätigt", "Setze Bestellung auf Versand erfolgt" und "Setze Bestellung auf bezahlt" sind natürlich aktiviert.

 

Wie lässt sich das unterbinden?

 

Vielen Dank,

p.

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

Das Deaktivieren reicht hier nicht aus, weil die automatische Versendung leider fest einprogrammiert ist. Verhindern lässt sich das nur durch Auskommentieren der Zeilen 777-790 der Datei classes/PaymentModule.php (Zeilenangabe kann je nach PrestaShop-Version leicht abweichen, hier für 1.6.1.2 RC3):

if (Validate::isEmail($this->context->customer->email)) {
    Mail::Send(
        (int)$order->id_lang,
        'order_conf',
        Mail::l('Order confirmation', (int)$order->id_lang),
        $data,
        $this->context->customer->email,
        $this->context->customer->firstname.' '.$this->context->customer->lastname,
        null,
        null,
        $file_attachement,
        null, _PS_MAIL_DIR_, false, (int)$order->id_shop
        );
}

Vor jede Zeile zwei Slashes setzen, also so:

// if (Validate::isEmail($this->context->customer->email)) {

Um zu verhindern, dass die Änderung mit jedem Update wiederholt werden muss, empfiehlt es sich, die gesamte Funktion validateOrder mit den obigen Änderungen als Override anzulegen.

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

Danke für die ausführliche Hilfe!

 

Das mit dem Override hat geklappt.

Leider wird nun auch keine Mail mehr verschickt, die den Downloadlink für ein virtuelles Produkt verschickt.

 

Muss ich da irgendetwas wieder aktivieren?

 

p.

Link to comment
Share on other sites

  • 2 weeks later...

Hallo zusammen,

 

ich habe das hier auch nochmal in einem Testshop (1.6.1.1) nachgestellt und hier klappt das. Auch wenn ich ein anderes Kommentarzeichen verwendet habe. :-)

/* 

*/

Dieses Pärchen muss für den ganzen Block nur einmal verwendet werden. Also ungefähr so:

 

/*

if (Validate::isEmail($this->context->customer->email)) {
Mail::Send(
(int)$order->id_lang,
'order_conf',
Mail::l('Order confirmation', (int)$order->id_lang),
$data,
$this->context->customer->email,
$this->context->customer->firstname.' '.$this->context->customer->lastname,
null,
null,
$file_attachement,
null, _PS_MAIL_DIR_, false, (int)$order->id_shop
);
}

*/

Allerdings klappt das auch mit den von eleazar vorgeschlagenen Kommentarzeichen hervorragend.

Zusammengefasst ist das anscheinend nicht der Grund für die fehlende Downloadmail.

 

LG Klaus / Lockesoft

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