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

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.