我要求每个产品都具有两个属性,即 1. is_product_old 2. if_old_comment
在发票电子邮件和发票pdf 的末尾,如果 is_product_old 是是,我需要显示 if_old_comment >对于订购的每种产品。
我的问题是我不知道我应该编辑哪些文件以自定义发票电子邮件和发票pdf。
然后在两者的结尾处,我都会在该发票中获得该订单的产品清单
对于每种产品,如果该产品的is_product_old为yes,我将显示if_old_comment。
所以我想知道我需要为此编辑哪些文件和功能,这些文件可以帮助我获取此-> invoiceId的产品列表以及如何获取productID的属性。
我在Magento 2.2.2中
答案 0 :(得分:0)
在这里我回答自己的问题,其他人可能会从中获得帮助。
在电子邮件模板的底部获取评论:
我创建了两个产品属性 is_product_old 和 if_old_comment
和用于此类销售的扩展电子邮件模板:
app / design / frontend / Codazon / fastest / ellyana / Magento_Sales / templates / email
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
// @codingStandardsIgnoreFile
?>
<?php $_order = $block->getOrder() ?>
<?php if ($_order): ?>
<?php $_items = $_order->getAllItems(); ?>
<table class="email-items">
<thead>
<tr>
<th class="item-info">
<?= /* @escapeNotVerified */ __('Items') ?>
</th>
<th class="item-qty">
<?= /* @escapeNotVerified */ __('Qty') ?>
</th>
<th class="item-price">
<?= /* @escapeNotVerified */ __('Price') ?>
</th>
</tr>
</thead>
<?php foreach ($_items as $_item): ?>
<?php
if ($_item->getParentItem()) {
continue;
}
?>
<tbody>
<?= $block->getItemHtml($_item) ?>
</tbody>
<?php endforeach; ?>
<tfoot class="order-totals">
<?= $block->getChildHtml('order_totals') ?>
</tfoot>
</table>
//Here I added my code
<table>
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
?>
<?php foreach ($_order->getAllItems() as $_item): ?>
<?php
if ($_item->getParentItem()) {
continue;
}
?>
<tbody>
<?php
$objectManager = Magento\Framework\App\ObjectManager::getInstance();
$productId = $objectManager->get('Magento\Catalog\Model\Product')->getIdBySku($_item->getSku());
$product = $objectManager->get('Magento\Catalog\Model\Product')->load($productId);
$is_refurb = $product->getAttributeText('is_refurb');
if($is_refurb=='Yes'){
?>
<p><b><?= $product->getRefurbComment(); ?></b></p>
<?php
}
?>
</tbody>
<?php endforeach; ?>
</table>
// here my code ends
<?php if ($this->helper('Magento\GiftMessage\Helper\Message')->isMessagesAllowed('order', $_order, $_order->getStore()) && $_order->getGiftMessageId()): ?>
<?php $_giftMessage = $this->helper('Magento\GiftMessage\Helper\Message')->getGiftMessage($_order->getGiftMessageId()); ?>
<?php if ($_giftMessage): ?>
<br />
<table class="message-gift">
<tr>
<td>
<h3><?= /* @escapeNotVerified */ __('Gift Message for this Order') ?></h3>
<strong><?= /* @escapeNotVerified */ __('From:') ?></strong> <?= $block->escapeHtml($_giftMessage->getSender()) ?>
<br /><strong><?= /* @escapeNotVerified */ __('To:') ?></strong> <?= $block->escapeHtml($_giftMessage->getRecipient()) ?>
<br /><strong><?= /* @escapeNotVerified */ __('Message:') ?></strong>
<br /><?= $block->escapeHtml($_giftMessage->getMessage()) ?>
</td>
</tr>
</table>
<?php endif; ?>
<?php endif; ?>
在添加了cutsom代码之后,我收到了注释(如果在电子邮件模板的底部添加了每个产品的注释)。