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 я получил комментарий, если таковой добавлен к каждому продукту в нижней части шаблона электронной почты.

Другие вопросы по тегам