1

我想在 Magento 中自动创建发票和电子邮件。发票创建似乎有效,但我正在让电子邮件部分工作......

 Mage::app();       
    $order = Mage::getModel('sales/order')->loadByIncrementId($orderid);

    try 
    {
        if(!$order->canInvoice())           {   
            Mage::throwException(Mage::helper('core')->__('Cannot create an invoice.'));
        }

        $invoice = Mage::getModel('sales/service_order', $order)->prepareInvoice();

        if (!$invoice->getTotalQty()) {
            Mage::throwException(Mage::helper('core')->__('Cannot create an invoice without products.'));
        }

        $invoice->setRequestedCaptureCase(Mage_Sales_Model_Order_Invoice::CAPTURE_ONLINE);
        $invoice->register();
        $transactionSave = Mage::getModel('core/resource_transaction')
            ->addObject($invoice)
            ->addObject($invoice->getOrder());
        $transactionSave->save();
    }       
    catch (Mage_Core_Exception $e) {

    }
}
4

1 回答 1

1

我知道我的反应有点晚,但对于找到此页面的其他人:

您需要添加发送电子邮件的代码。在注册行之后执行此操作:


$invoice->register();
$invoice->getOrder()->setCustomerNoteNotify(true);
$invoice->getOrder()->setIsInProcess(true);
$invoice->sendEmail();

setCustomerNoteNotify 用于表示客户是否必须收到电子邮件。

setIsInProcess 将订单状态更改为正在处理

于 2014-05-23T13:27:32.307 回答