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();

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.


¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.