Exemplo n.º 1
0
 /**
  * Send email to customer
  *
  * @param Invoice $invoice
  * @param bool $notify
  * @param string $comment
  * @return bool
  */
 public function send(Invoice $invoice, $notify = true, $comment = '')
 {
     $order = $invoice->getOrder();
     $this->templateContainer->setTemplateVars(['order' => $order, 'invoice' => $invoice, 'comment' => $comment, 'billing' => $order->getBillingAddress(), 'payment_html' => $this->getPaymentHtml($order), 'store' => $order->getStore()]);
     $result = $this->checkAndSend($order, $notify);
     if ($result) {
         $invoice->setEmailSent(true);
         $this->invoiceResource->saveAttribute($invoice, 'email_sent');
     }
     return $result;
 }
Exemplo n.º 2
0
 /**
  * Sends order invoice email to the customer.
  *
  * Email will be sent immediately in two cases:
  *
  * - if asynchronous email sending is disabled in global settings
  * - if $forceSyncMode parameter is set to TRUE
  *
  * Otherwise, email will be sent later during running of
  * corresponding cron job.
  *
  * @param Invoice $invoice
  * @param bool $forceSyncMode
  * @return bool
  */
 public function send(Invoice $invoice, $forceSyncMode = false)
 {
     $invoice->setSendEmail(true);
     if (!$this->globalConfig->getValue('sales_email/general/async_sending') || $forceSyncMode) {
         $order = $invoice->getOrder();
         $transport = ['order' => $order, 'invoice' => $invoice, 'comment' => $invoice->getCustomerNoteNotify() ? $invoice->getCustomerNote() : '', 'billing' => $order->getBillingAddress(), 'payment_html' => $this->getPaymentHtml($order), 'store' => $order->getStore(), 'formattedShippingAddress' => $this->getFormattedShippingAddress($order), 'formattedBillingAddress' => $this->getFormattedBillingAddress($order)];
         $this->eventManager->dispatch('email_invoice_set_template_vars_before', ['sender' => $this, 'transport' => $transport]);
         $this->templateContainer->setTemplateVars($transport);
         if ($this->checkAndSend($order)) {
             $invoice->setEmailSent(true);
             $this->invoiceResource->saveAttribute($invoice, ['send_email', 'email_sent']);
             return true;
         }
     }
     $this->invoiceResource->saveAttribute($invoice, 'send_email');
     return false;
 }