Envoyer un e-mail au client lors de la création d'une facture par programme

14

Lors de la création d'une facture par programme, comment puis-je demander au système d'envoyer la facture par e-mail au client?

$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
la source

Réponses:

12

Après $transactionSave->save();:

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

Cela demandera à Magento d'envoyer la facture par e-mail au client.

élan
la source
l'état défini est-il nécessaire pour envoyer l'e-mail?
Qaisar Satti
Oui, c'est une norme Magento. S'il n'est pas inclus, la commande ne sera pas paramétrée sur Traitement (qui devrait être une fois facturée).
Moose