在Magento中创建发票和电子邮件

时间:2012-11-02 16:02:58

标签: email magento invoice

我想在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) {

    }
}

1 个答案:

答案 0 :(得分:1)

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

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


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

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

setIsInProcess会将订单状态更改为处理