Magento 2 изменить имя файла pdf - PullRequest
0 голосов
/ 05 июня 2018

Я хочу изменить имена файлов PDF в Magento 2.

Имена по умолчанию нечеткие, и я хочу, чтобы счета были доступны для поиска при сохранении в папку на моем компьютере.

Можно ли изменить имена файлов PDF-файлов в Magento 2 на такой формат, как "invoice_1000000123.pdf"?

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Вы должны никогда редактировать файлы ядра.Серьезно, не надо.

Поскольку /vendor/magento/module-sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php является абстрактным классом, вы должны использовать плагин или параметр в своем модуле, чтобы переопределить его.

Что вам нужно для этого:

Обычные минимальные файлы: /Vendor/Module/composer.json, /Vendor/Module/registration.php, /Vendor/Module/etc/module.xml

В /Vendor/Module/etc/module.xml вы должны упорядочить Magento_Sales

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="Vendor_Module" setup_version="1.0.0">
        <sequence>
            <module name="Magento_Sales"/>
        </sequence>
    </module>
</config>

Тогда вы можете использовать плагин или параметр в /Vendor/Module/etc/di.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <preference for="Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\PrintAction" type="Vendor\Module\Controller\Adminhtml\Invoice\AbstractInvoice\PrintAction"/>      
</config>

Плагин будет выглядеть примерно так:

<type name="Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\PrintAction">
    <plugin name="Vendor_Module::aroundPrintInvoice" type="Vendor\Module\Block\Class" sortOrder="0"/>
</type>

Теперь добавьтеPrintAction.php к пути, указанному в вашем предпочтении / плагине (Пример для предпочтения)

<?php
namespace Vendor\Module\Controller\Adminhtml\Invoice\AbstractInvoice;

class PrintAction extends \Magento\Sales\Controller\Adminhtml\Invoice\AbstractInvoice\PrintAction
{
    /* Write code here */
}
0 голосов
/ 03 октября 2018

Да, можно изменить имя файла PDF в инвойсе.

Пожалуйста, перейдите по следующему пути:

/vendor/magento/module-sales/Controller/Adminhtml/Invoice/AbstractInvoice/PrintAction.php

Вы можете изменить имя файла из вышеуказанного файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...