Magento 2, как добавить настраиваемые атрибуты в электронную почту и счет-фактуру PDF
У меня есть требование, чтобы у меня было два атрибута в каждом продукте, т.е. 1. is_product_old 2. if_old_comment
В конце электронной почты счета-фактуры и PDF- файла счета-фактуры мне нужно показать if_old_comment в случае, если is_product_old равен yes для каждого заказанного продукта.
Моя проблема в том, что я не знаю, какие файлы мне нужно отредактировать, чтобы настроить e-mail счета и счета pdf.
затем в конце обоих я получу список продуктов этого заказа в этом счете
И для каждого продукта я покажу if_old_comment в случае, если is_product_old для этого продукта - yes.
Поэтому я хотел бы знать, какие файлы мне нужно отредактировать для этого, и функцию, которая может помочь мне получить список продуктов для this->invoiceId и как получить атрибут productID.
Я в Magento 2.2.2
1 ответ
Здесь я отвечаю на свой вопрос, другие могут получить помощь от него.
чтобы получить комментарий внизу шаблона электронной почты:
Я создал два атрибута продукта is_product_old и if_old_comment
и расширенный шаблон электронной почты для продаж, как это:
приложение / дизайн / интерфейс /Codazon/ быстрый /ellyana/Magento_Sales/ шаблоны / электронная почта
<?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 я получил комментарий, если таковой добавлен к каждому продукту в нижней части шаблона электронной почты.