本文整理汇总了PHP中Mage_Sales_Model_Order_Shipment::sendEmail方法的典型用法代码示例。如果您正苦于以下问题:PHP Mage_Sales_Model_Order_Shipment::sendEmail方法的具体用法?PHP Mage_Sales_Model_Order_Shipment::sendEmail怎么用?PHP Mage_Sales_Model_Order_Shipment::sendEmail使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Mage_Sales_Model_Order_Shipment
的用法示例。
在下文中一共展示了Mage_Sales_Model_Order_Shipment::sendEmail方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: testSendEmail
/**
* @magentoConfigFixture current_store design/theme/full_name default/default/default
* @magentoDataFixture Mage/Sales/_files/order.php
*/
public function testSendEmail()
{
$order = new Mage_Sales_Model_Order();
$order->loadByIncrementId('100000001');
$order->setCustomerEmail('customer@example.com');
$shipment = new Mage_Sales_Model_Order_Shipment();
$shipment->setOrder($order);
$payment = $order->getPayment();
$paymentInfoBlock = Mage::helper('Mage_Payment_Helper_Data')->getInfoBlock($payment);
$paymentInfoBlock->setArea('invalid-area');
$payment->setBlockMock($paymentInfoBlock);
$this->assertEmpty($shipment->getEmailSent());
$shipment->sendEmail(true);
$this->assertNotEmpty($shipment->getEmailSent());
$this->assertEquals('frontend', $paymentInfoBlock->getArea());
}
示例2: sendEmail
/**
* Send email with shipment data
*
* @param boolean $notifyCustomer
* @param string $comment
* @return Mage_Sales_Model_Order_Shipment
*/
public function sendEmail($notifyCustomer = true, $comment = '')
{
if (!Mage::getStoreConfig('pdfpro/config/enabled')) {
return parent::sendEmail($notifyCustomer, $comment);
}
switch (Mage::getStoreConfig('pdfpro/config/shipment_email_attach')) {
case VES_PdfPro_Model_Source_Attach::ATTACH_TYPE_NO:
return parent::sendEmail();
case VES_PdfPro_Model_Source_Attach::ATTACH_TYPE_ADMIN:
$this->sendEmailForAdmin($notifyCustomer, $comment, true);
$this->sendEmailForCustomer($notifyCustomer, $comment, false);
return $this;
case VES_PdfPro_Model_Source_Attach::ATTACH_TYPE_CUSTOMER:
$this->sendEmailForAdmin($notifyCustomer, $comment, false);
$this->sendEmailForCustomer($notifyCustomer, $comment, true);
return $this;
}
$order = $this->getOrder();
$storeId = $order->getStore()->getId();
if (!Mage::helper('sales')->canSendNewShipmentEmail($storeId)) {
return $this;
}
// Get the destination email addresses to send copies to
$copyTo = $this->_getEmails(self::XML_PATH_EMAIL_COPY_TO);
$copyMethod = Mage::getStoreConfig(self::XML_PATH_EMAIL_COPY_METHOD, $storeId);
// Check if at least one recepient is found
if (!$notifyCustomer && !$copyTo) {
return $this;
}
// Start store emulation process
$appEmulation = Mage::getSingleton('pdfpro/app_emulation');
$initialEnvironmentInfo = $appEmulation->startEnvironmentEmulation($storeId);
try {
// Retrieve specified view block from appropriate design package (depends on emulated store)
$paymentBlock = Mage::helper('payment')->getInfoBlock($order->getPayment())->setIsSecureMode(true);
$paymentBlock->getMethod()->setStore($storeId);
$paymentBlockHtml = $paymentBlock->toHtml();
} catch (Exception $exception) {
// Stop store emulation process
$appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
throw $exception;
}
// Stop store emulation process
$appEmulation->stopEnvironmentEmulation($initialEnvironmentInfo);
// Retrieve corresponding email template id and customer name
if ($order->getCustomerIsGuest()) {
$templateId = Mage::getStoreConfig(self::XML_PATH_EMAIL_GUEST_TEMPLATE, $storeId);
$customerName = $order->getBillingAddress()->getName();
} else {
$templateId = Mage::getStoreConfig(self::XML_PATH_EMAIL_TEMPLATE, $storeId);
$customerName = $order->getCustomerName();
}
$mailer = Mage::getModel('pdfpro/email_template_mailer');
if ($notifyCustomer) {
$emailInfo = Mage::getModel('pdfpro/email_info');
$emailInfo->addTo($order->getCustomerEmail(), $customerName);
if ($copyTo && $copyMethod == 'bcc') {
// Add bcc to customer email
foreach ($copyTo as $email) {
$emailInfo->addBcc($email);
}
}
$mailer->addEmailInfo($emailInfo);
}
// Email copies are sent as separated emails if their copy method is 'copy' or a customer should not be notified
if ($copyTo && ($copyMethod == 'copy' || !$notifyCustomer)) {
foreach ($copyTo as $email) {
$emailInfo = Mage::getModel('pdfpro/email_info');
$emailInfo->addTo($email);
$mailer->addEmailInfo($emailInfo);
}
}
// Set all required params and send emails
$mailer->setSender(Mage::getStoreConfig(self::XML_PATH_EMAIL_IDENTITY, $storeId));
$mailer->setStoreId($storeId);
$mailer->setTemplateId($templateId);
$mailer->setTemplateParams(array('order' => $order, 'shipment' => $this, 'comment' => $comment, 'billing' => $order->getBillingAddress(), 'payment_html' => $paymentBlockHtml));
/* Attach Invoice PDF in email */
$shipmentData = Mage::getModel('pdfpro/order_shipment')->initShipmentData($this);
try {
$result = Mage::helper('pdfpro')->initPdf(array($shipmentData), 'shipment');
if ($result['success']) {
$mailer->setPdf(array('filename' => Mage::helper('pdfpro')->getFileName('shipment', $this) . '.pdf', 'content' => $result['content']));
} else {
Mage::log($result['msg']);
}
} catch (Exception $e) {
Mage::log($e->getMessage());
}
$mailer->send();
return $this;
}
示例3: sendEmail
public function sendEmail($notifyCustomer = true, $comment = '')
{
Mage::app()->setCurrentStore($this->getStoreId());
if (Mage::getStoreConfig('transactional/shipment/enabled')) {
try {
if (!Mage::helper('sales')->canSendNewShipmentEmail($this->getStoreId())) {
return $this;
}
$order = $this->getOrder();
$customerEmail = $order->getCustomerEmail();
$orderNumber = $order->getIncrementId();
$subTotal = $order->formatPriceTxt($order->getSubtotal());
$taxTotal = $order->formatPriceTxt($order->getTaxAmount());
$shipTotal = $order->formatPriceTxt($order->getShippingAmount());
$grandTotal = $order->formatPriceTxt($order->getGrandTotal());
$discAmount = $order->formatPriceTxt($order->getBaseDiscountAmount());
$billingAddress = $order->getBillingAddress();
$billFirstName = $billingAddress->getFirstname();
$billLastName = $billingAddress->getLastname();
$billAddress1 = $billingAddress->getStreet(1);
$billAddress2 = $billingAddress->getStreet(2);
$billCity = $billingAddress->getCity();
$billCounty = $billingAddress->getRegion();
$billPostCode = $billingAddress->getPostcode();
$billCountry = $billingAddress->getCountry();
$shippingAddress = $order->getShippingAddress();
$shipFirstName = $shippingAddress->getFirstname();
$shipLastName = $shippingAddress->getLastname();
$shipAddress1 = $shippingAddress->getStreet(1);
$shipAddress2 = $shippingAddress->getStreet(2);
$shipCity = $shippingAddress->getCity();
$shipCounty = $shippingAddress->getRegion();
$shipPostCode = $shippingAddress->getPostcode();
$shipCountry = $shippingAddress->getCountry();
$payment = $order->getPayment();
$paymentMethod = $payment->getMethodInstance()->getTitle();
$paymentLastFourDigits = $payment->getCcLast4();
$paymentCard = $payment->getCcType();
$shippingMethod = $order->getShippingDescription();
$orderLineItems = '';
$htmlTemplate = Mage::getStoreConfig('transactional/shipment/lineItemsHtml');
foreach ($order->getAllVisibleItems() as $item) {
$productModel = Mage::getModel('catalog/product')->load($item->getProductId());
$productType = $productModel->getTypeId();
$children = $item->getChildren();
$childrenCount = count($children);
if (Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE == $productType && $childrenCount > 0) {
$productModel = Mage::getModel('catalog/product')->load($children[0]->getProductId());
}
$product = Mage::helper('transactional/product')->getProductEntity($productModel, false, false, false);
$prodGiftMessage = Mage::helper('giftmessage/message')->getGiftMessage($item->getGiftMessageId())->getData('message');
if ($prodGiftMessage != '') {
$prodGiftMsgStr = 'Gift Message: ' . $prodGiftMessage;
} else {
$prodGiftMsgStr = '';
}
$tags = array('[IMAGE_URL]', '[TITLE]', '[SKU]', '[QUANTITY]', '[PRICE]', '[LINE_ITEM_TOTAL]', '[LINK_URL]', '[GIFT_MSG]');
$values = array($product['image'], $product['name'], $product['sku'], number_format($item->getQtyOrdered(), 0), $order->formatPriceTxt($item->getPrice()), $order->formatPriceTxt($item->getRowTotal()), $product['url_path'], $prodGiftMsgStr);
$tmpHtml = str_replace($tags, $values, $htmlTemplate);
$orderLineItems = $orderLineItems . $tmpHtml;
}
$tracks = $this->getAllTracks();
if (count($tracks) > 0) {
$trackingNumber = $tracks[0]->getNumber();
$trackingLink = Mage::helper('shipping')->getTrackingPopUpUrlByOrderId($order->getId());
}
Mage::helper('transactional')->sendShipmentEmail($customerEmail, $orderNumber, $trackingNumber, $trackingLink, $subTotal, $shipTotal, $taxTotal, $discAmount, $grandTotal, $billFirstName, $billLastName, $billAddress1, $billAddress2, $billCity, $billCounty, $billPostCode, $billCountry, $shipFirstName, $shipLastName, $shipAddress1, $shipAddress2, $shipCity, $shipCounty, $shipPostCode, $shipCountry, $paymentMethod, $shippingMethod, $paymentLastFourDigits, $paymentCard, $orderLineItems);
return $this;
} catch (Exception $ex) {
return parent::sendEmail($notifyCustomer, $comment);
}
}
return parent::sendEmail($notifyCustomer, $comment);
}