Invia un'email al cliente durante la creazione programmatica della fattura


14

Durante la creazione di una fattura a livello di codice, come posso fare in modo che il sistema invii la fattura via e-mail 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();

Risposte:


12

Dopo $transactionSave->save();:

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

Questo indicherà a Magento di inviare la fattura via e-mail al cliente.


lo stato impostato è necessario per inviare l'e-mail?
Qaisar Satti,

Sì, questa è una norma Magento. Se non incluso, l'ordine non verrà impostato su Elaborazione (che dovrebbe essere fatturato una volta).
Alce,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.