Magento 1.9 – Gửi đơn đặt hàng mail ngay lập tức thay cron

Ab Magento Version 1.9 các email xác nhận đơn hàng được gửi không phải do tổ chức sự kiện (Vì vậy, sau một trật tự thành công) nhưng qua một hàng đợi mail, được kích hoạt bởi cron. Trong nhiều trường hợp, xác nhận đơn hàng do đó chỉ là tất cả 15 phút gửi.

không thực sự tối ưu chỉ với xác nhận đơn hàng, vì khách hàng mong đợi điều này sau khi đặt hàng, để chắc chắn, đã thực sự làm việc tất cả. Đối với hoá đơn mail hoặc xác nhận giao hàng, nó sẽ, tuy nhiên, có lẽ không đến nỗi tệ, nếu họ đã gửi một vài phút sau đó. Nhưng họ vẫn gửi bởi tổ chức sự kiện – để trực tiếp.

Ai bây giờ nhưng sẽ, rằng xác nhận đơn hàng sẽ được gửi trực tiếp đến trật tự, có thể trang bị thêm này tương đối đơn giản.

Hierzu kopiert người đàn ông chết Datei app / code / core / Mage / Bán hàng / mẫu / Order.php trong den Ordner app / code / local / Mage / Bán hàng / mẫu / Order.php

và tìm kiếm các dòng

$bưu phẩm->setQueue($emailQueue)->gởi();

Đây là nhận xét ra hoặc bị xóa và thay thế bằng dòng này

$bưu phẩm-> gởi();

Sau đó, sau đó ứng dụng / thiết kế / frontend /[IhrTemplate]/[IhrTemplate]/mẫu / kiểm tra / success.phtml mở và ở phía trên chưa trước đóng ?> tích hợp đoạn mã sau:

//Xác nhận đơn hàng không có cron
$ order = Mage::getModel('đơn đặt hàng');
$incrementId = Mage::getSingleton('Thanh toán / phiên')->getLastRealOrderId();
$gọi món->loadByIncrementId($incrementId);

thử{ $gọi món->sendNewOrderEmail();}
nắm lấy (Ngoại lệ $ ex) { bắt chước "Email chưa được gửi ..."; }
$khách hàng = Mage::getSingleton('Khách hàng / phiên')->GetCustomer();
$email = $ customer->getEmail();

Sau đó, có thể một lần nữa làm trống bộ nhớ cache. Nhưng e-mail đến trực tiếp sau khi đặt hàng.

cập nhật từ 17.02.2017

nó tấn công, mà nhiều lần xác nhận đơn hàng e-mail được gửi hai lần. Để sửa lỗi này, sự thay đổi đã được thực hiện của success.phtml đảo ngược (SO). Vì vậy, nếu các vấn đề về vận chuyển email trùng lặp xuất hiện, sau đó loại bỏ sự điều chỉnh này lại và thay đổi chỉ order.php.

cập nhật từ 25.07.2017

Nếu o.g. Cách không làm việc, một cách khác nhau có thể được truy:

Man ứng dụng kopiert / code / core / Mage / Core / mẫu / Email / template.php nach

app / code / local / Mage / Core / mẫu / Email / template.php

và từ đó, sau đó dòng (như. 407-426)

        nếu ($điều này->hasQueue() && $điều này->getQueue() instanceof Mage_Core_Model_Email_Queue) {
            /** @var $ emailQueue Mage_Core_Model_Email_Queue */
            $emailQueue = $ this->getQueue();
            $emailQueue->clearRecipient();
            $emailQueue->setMessageBody($bản văn);
            $emailQueue->setMessageParameters(mảng(
                    'chủ đề' => $môn học,
                    'return_path_email' => $returnPathEmail,
                    'is_plain' => $điều này->isPlain(),
                    'from_email' => $điều này->getSenderEmail(),
                    'from_name' => $điều này->getSenderName(),
                    'reply_to' => $điều này->getMail()->getReplyTo(),
                    'return_to' => $điều này->getMail()->getReturnPath(),
                ))
                ->thêm những người nhận($email, $tên, Mage_Core_Model_Email_Queue::EMAIL_TYPE_TO)
                ->thêm những người nhận($điều này->_bccEmails, mảng(), Mage_Core_Model_Email_Queue::EMAIL_TYPE_BCC);
            $emailQueue->addMessageToQueue();

            trở thành sự thật;
        }

mà không cần thay thế. Sau đó, xác nhận đơn hàng được gửi ngay lập tức.

cập nhật từ 19.01.2018

Cũng liên quan đến phần mail không đến hơn, Hãy có một cái nhìn tại NÀY ném bài – sử dụng mở rộng SMTP Pro có thể nhìn thấy hàng đợi mail của Magento 1.9 xử lý thoải mái và không có sửa đổi mã.

Được sử dụng trong Magento Version 1.9 bình luận? bổ sung? Ghi chú? vui vẻ!

Xuất bản bởi sợi Dệt

từ 2009 Tôi đã làm việc chặt chẽ với Magento. Tôi bắt đầu với việc tạo ra và hoạt động của các cửa hàng B2C. Điều này đã được mở rộng thông qua công việc của tôi trong lĩnh vực logistics. Điều này dẫn đến hệ thống B2E đầu tiên chuyên. Hôm nay tôi làm việc ngày một ngày với B2C thú vị, B2B- và các dự án B2E và báo cáo trong blog này về những thách thức và đưa ra lời khuyên trong cuộc.

13 Nhận xét về "Magento 1.9 – Gửi đơn đặt hàng mail ngay lập tức thay cron”

  1. Hi trong cài đặt của tôi về Magento 1.9.3.6 đó là 2. không có đường dẫn. Con đường tồn tại: app / code / core / Mage / Bán hàng / mẫu / Order.php
    không: app / code / local / Mage / Bán hàng / mẫu / Order.php

    với tôi trong nó:
    app / code / local / smartwave

    app / code / local / Magegiant

    Tôi có bây giờ thư mục Sales tìm nơi khác?

    Cảm ơn các câu trả lời. lg Marcel

    1. Chào!
      Điều này có thể có lý do khác nhau. Một trong số đó là hoster mail của bạn không cho phép nhận mail từ “giả mạo” smtp-server mà Magento được sử dụng trong tiêu chuẩn. Vì vậy, bạn sẽ cần phải sử dụng một smtp-server thực. Vui lòng tham khảo bài viết của tôi về mở rộng SMTP-pro trong blog này. Với điều này, bạn có thể đăng nhập tất cả các thư và xem liệu mail quản trị được thực sự được gửi hay không. Điều này sẽ mang lại cho bạn thêm tìm được vấn đề.
      Trân trọng!

      1. Cảm ơn bạn đã phản hồi,
        Tôi cài đặt tiện ích, nhưng luôn luôn cùng một vấn đề cho quản trị,
        Trên thực tế khách hàng nhận được xác nhận của nó, và qua đường bưu điện tiếp xúc được gửi quá
        Bạn co thể giup tôi được không
        cảm ơn bạn

Để lại một trả lời

Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu *