Enviar un correo electrónico al cliente al crear facturas mediante programación

14

Al crear una factura mediante programación, ¿cómo puedo hacer que el sistema envíe la factura por correo electrónico al cliente?

$order=Mage::getModel('sales/order')->load($orderid); 
$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();
Qaisar Satti
fuente

Respuestas:

12

Después $transactionSave->save();:

$invoice->getOrder()->setIsInProcess(true);
$history = $invoice->getOrder()->addStatusHistoryComment(
    'Programmatically created invoice', true
);
$invoice->sendEmail(true, '');
$order->save();

Esto le indicará a Magento que envíe la factura por correo electrónico al cliente.

Alce
fuente
¿Es necesario el estado establecido para enviar el correo electrónico?
Qaisar Satti
Sí, esta es una norma de Magento. Si no está incluido, el pedido no se establecerá en Procesamiento (que debería facturarse una vez).
Alces