Обновление компонента mspReceiptAccount 2.0.0

Компонент для печати квитанции переводов и счетов на оплату для minishop2.
Полностью переработан весь бэкенд приложения и добавлены очень полезные функции:

  • Добавлены в шаблоны 3 изображения с логотипом, печатью и подписью
  • Во время отправки новых заказов, автоматически прикрепляется PDF файл к письму с заказом
  • Отправка на email PDF Счета или Квитанции из списка с заказами в minishop. Можно отдельно отправить пользователи или менеджеру
  • Распечатка Счета или Квитанции из списка заказов minishop
  • Настройки для отключения прикрепления PDF. Можно отключить прикрепление PDF у менеджера или у пользователя
  • Возможность создавать свои шаблоны PDF документов
  • Возможность задавать css файл со стилями для разных шаблонов


Отправка заказа из админки


Теперь можно не только распечатать PDF (счет или квитанцию) из административной части заказов minishop но и отправить повторное письмо пользователю или менеджеру.



Эта функция на самом деле очень полезная, не только для отправки PDF но и как дополнительная возможность повторного отправления заказа.
Особенно полезна когда по каким то причинам заказа не пришел на почту

Управление шаблонами


Список шаблонов доступен на отдельной странице компонента.
Можно добавить свой шаблон и кастомизировать класс для своих целей.



PDF документы доступные по умолчанию


Квитанция — Квитанция на оплату заказа № 1601-74 от 05.01.2016.pdf
Счет — Счёт на оплату заказа № 1601-71 от 05.01.2016.pdf
документы остались те же, только в них добавлены изображения для печати и перенесен css код.
Изображения можно удалить в настройках или в чанке с шаблоном PDF.

Ссылка на компонент
Андрей Степаненко
11 ноября 2018, 10:41
modx.pro
1 829
+10
Поблагодарить автора Отправить деньги

Комментарии: 45

Семён Кудрявцев
11 ноября 2018, 11:37
0
Автору респект, теперь это достойная замена компонента orderPrint, да ещё и по более выгодной цене.
Хорошо бы в него по-умолчанию добавить побольше готовых форм, так как самому нарыть их в сети, а потом ещё и стили правильные прописать мало кому захочется и не у многих получится, так как у pdf библиотеки под капотом есть свои требования к css, я уже это проходил с orderPrint)
Может пустить клич по сообществу, кому какие формы пригодились при разработке интернет-магазинов и попросить их в комменты написать, а может даже и кодом поделиться? Думаю Ваш компонент + хороший набор форм однозначно определит выбор разработчика при покупке компонента.
    Андрей Степаненко
    11 ноября 2018, 11:58
    0
    Если будут готовые хорошие решения по PDF шаблонам, без проблем добавлю.
    orderPrint есть такая беда на счет css да и со шрифтами по дефолту беда там библиотека TCPDF.
    В компоненте используется mPDF он по удачней в этом плане. Но опять же не весь css поддерживает. Какие то моменты приходится в ручную прописывать через style, к примеру max-height не будет работать.

    Тут не то чтобы альтернатива orderPrint, вообще этот компонент это способы оплаты для сайта.
    Немного расширил функционал. Так как несколько раз были вопросы на счет прикрепления PDF к письму с заказом. Пока эту функцию реализовывал увидел пару полезных фишек в виде отправки повторного заказа и печати любых заказов в PDF.
      Семён Кудрявцев
      11 ноября 2018, 12:37
      0
      Поставил его потестить на modhost.pro — при выборе в меню заказа счёта или квитанции ни один из пунктов не отрабатывает, либо пустая страница, либо пишет что не найден шаблон. Работает только печать PDF -> расходная накладная. Может я забыл что-то ещё сделать?
      s16264.h4.modhost.pro/manager/
      s16264
      rofcuA5xpmZg
        Андрей Степаненко
        11 ноября 2018, 16:41
        0
        Ну скорей всего проблема в демо версии.
        Текущая версия защищена ширфрацией.
        При покупке дополнения все в порядке. работает.
        Пробовал работы при скачивании через купленные ключи все работает.
        Если в демо не работает, ну и слава богу.
        В том смысле что это не порядок, но за демо версию я не готов отвечать.
          Андрей Степаненко
          11 ноября 2018, 16:47
          0
          По существу: проблема в том что не удалось шаблоны установить.
      Konstantin
      11 ноября 2018, 14:05
      0
      Ну наконец-то! Как я этого ждал.
      Андрей, сразу несколько вопросов:
      1) феном поддерживается?
      2) баг с ценой в счете убран? (если к способу оплаты с классом-обработчика ReceiptAccount прибавляешь доп. стоимость в процентах или фиксированную, то в счёте получалось две цены, в таблице товаров цена товара без доп. стоимости, а в итого, цена с доп. стоимостью)
        Konstantin
        11 ноября 2018, 14:08
        0
        p.s. не обновляется из админки, ошибка err_provider
          Андрей Степаненко
          11 ноября 2018, 16:44
          0
          Если не обновляется, возможно есть какая та ошибка.
          Напишите пожалуйста мне в техническую поддержку, если возможно с предоставлением доступа. Я помогу разобраться с проблемой.
          Андрей Степаненко
          11 ноября 2018, 16:52
          0
          По поводу цену, не понял в чем проблема? В настройках есть возможность выбора способа формирования НДС. Возможно это моможет

          Феном — только что заменял функцию для обработки версия 2.0.1, поддерживает)
            Konstantin
            11 ноября 2018, 17:02
            0
            С обновлением разобрался, снес старую версию и все получилось, а с ценой, проблема в том, что в таблице товаров к цене не прибавляется доп стоимость указанная в настройках способа оплаты, она добавляется корректно только к итоговой сумме.
              Андрей Степаненко
              11 ноября 2018, 17:08
              0
              Цена берется из заказа
              https://yadi.sk/i/S00ODoTkwOLpKA

              У вас в заказанных позициях одна и та же цена?
                Konstantin
                11 ноября 2018, 19:47
                0
                Да.
                Fenom чет не работает, [[+images.logo]] например, не выводится ни так: {$images.logo}, ни так: {'images.logo' | placeholder}
                  Андрей Степаненко
                  11 ноября 2018, 20:05
                  0
                  Исправил.
                  Не работало из за
                  https://yadi.sk/i/RFa_tIyM6lwxFg
                  Отформатировал текст
                  https://yadi.sk/i/XrKtET5bD5ESSw
                  Заработало…
                    Konstantin
                    11 ноября 2018, 20:22
                    0
                    Обновился но все по старому было, исправил также и теперь запись из лексикона нормально выводятся через феном, а плейсхолдеры что-то не хотят никак, вы как выводите их?
                  Андрей Степаненко
                  11 ноября 2018, 20:06
                  0
                  По поводу позиций. Возможно скрипт который записывал конечную стоимость к ценам товара ничего не прибавлял.
                    Konstantin
                    12 ноября 2018, 12:48
                    0
                    Это уже не важно, есть же fenom. А вот что важно, это то что теперь после оформления заказа не открывается форма для заполнения реквизитов организации, это баг или так задумано?
                      Андрей Степаненко
                      12 ноября 2018, 12:52
                      0
                      Можете ссылку сбросить я посмотрю?
                        Konstantin
                        12 ноября 2018, 12:56
                        0
                        Конечно, и доступы могу предоставить если надо :-)
                          Андрей Степаненко
                          12 ноября 2018, 13:00
                          0
                          Код поправил, в течении часа обновление загружу
                            Konstantin
                            12 ноября 2018, 14:42
                            0
                            нет ничего, снести и заново скачать?
                            Андрей Степаненко
                            12 ноября 2018, 16:29
                            0
                            Только что залил новую версию. Обновитесь
                            Konstantin
                            12 ноября 2018, 16:47
                            0
                            !
                            Андрей Степаненко
                            12 ноября 2018, 16:50
                            0
                            В настройках id страницы для корзины укажите
                            Konstantin
                            12 ноября 2018, 16:52
                            0
                            Прошу прощения, все ок, из-за другой проблемы корзина слетела
                            Андрей Степаненко
                            12 ноября 2018, 16:56
                            0
                            Там еще кнопку в списке с заказами добавил.
                            Получить ссылка на страницу оплаты
                            Konstantin
                            13 ноября 2018, 08:19
                            0
                            Кнопки у меня нет, да и не нужна особо, а вот то, что счет отправляется на емэйл покупателю до того, как он заполнил реквизиты – расстроило.
                            В таком случае лучше вообще форму не показывать. Может вернете как было? -> оформил заказ -> редирект на страницу с формой для заполнения реквизитов?
                            Андрей Степаненко
                            13 ноября 2018, 09:04
                            0
                            В настройках есть параметры для отключения.
                            Чтобы реквизиты были, нужно заранее в заказ передавать поля с даными для счёта.
                            Konstantin
                            13 ноября 2018, 09:56
                            0
                            что-то не выходит… или я не так понял
                            добавил инпут (name=«mspra_org»), в чанке шаблона пдф пробую вывести {$order.properties.mspra_org}, {$properties.mspra_org} или {$order.mspra_org} и ничего
                            Андрей Степаненко
                            13 ноября 2018, 10:01
                            0
                            Вроде так:
                            {$fp.mspra.name}
                            или так

                            Но лучше так:
                            {$order.properties.mspra.name}
                            Konstantin
                            13 ноября 2018, 10:09
                            0
                            ни так ни так, или это надо в отдельную форму?
                            Андрей Степаненко
                            13 ноября 2018, 10:18
                            0
                            Данные то в форму нужно передавать.
                            Они саму там не как не окажутся.
                            Надо в заказе в поле properties записать данные
                            properties: {
                            mspra: [
                                'name' => 'ООО "Рогов"'
                            ]
                            }
                            К примеру добавить плагин с событие msOnSubmitOrder в него передается эксземпляр заказа.
                            И там записать данные из формы

                            $data = $_REQUEST['my_data'];
                            $properties = $order->get('properties');
                            $properties['mspra'] = array(
                                'name' => $data['name']
                            );
                            
                            $order->set('properties', $properties);
                            Konstantin
                            17 ноября 2018, 12:09
                            0
                            Андрей, возник еще вопрос:
                            У компонента есть функционал создания собственных шаблонов:

                            Я создал шаблон, как его можно добавить в действиях с заказами наравне с «отправить счет» и «отправить квитанцию»? Или этот функционал для другого используется?
                            P.s. очень не хватает документации…
                            Андрей Степаненко
                            06 декабря 2018, 20:42
                            0
                            Нужен свой класс для обработки и название кнопки
        Степан Прищепенко
        26 декабря 2018, 11:11
        0
        Привет, смотрел компонент на тестовом хостинге, что обнаружил:
        1. в сниппете mspreceiptaccount есть вызов метода
        if ($Item = $mspReceiptAccount->getItem()) {
        что приводит… ни к чему т.к. getItem требует ввода первого параметра, если передать туда например:
        getItem('ReceiptAccountSH')
        то строится форма, уже хорошо.
        2. В форме тычем на печать счета и видим, что значение переменной class не передается в action результат 'Could not load class'

        Возможно старая версия, т.к. подозреваю что чего-то не хватает, написал на всякий.
          Степан Прищепенко
          27 декабря 2018, 16:47
          0
          В догонку: не считается кол-во товара в счете, т.к.:
          в методе run класса mspReceiptAccountItemHandler идет вызов
          $data = $this->beforeData($data);
          ПОСЛЕ того как заполнен массив
          $data
          . Далее если это исправить, все равно не заработает, т.к. в классе ReceiptAccountSH (мы же печатаем счет), в методе beforeData есть такая замечательная строчка
          $data['cart'] = implode('', $carts);
          по мне так лучше заменить это на
          $data['cart'] = $carts;
          , и дополнить вывод $data в методе run()
          ...'cart' => $this->out['cart'],...
          Таким образом мы избавимся от лишнего шаблона заполнения строк в товаре и от лишнего метода.
            Андрей Степаненко
            21 февраля 2019, 17:57
            0
            Тока щас увидел комментарий.
            Спасибо) посмотрю этим моменты.

            Возможно многое уже исправлено, так как после нового года много чего было проверено.
          Sergey (Sentinel)
          21 февраля 2019, 11:45
          0
          Как вывести в счете longtitle? так не работает
          [[+longtitle]]
          [[+id:pdofield=`longtitle`]]
            Андрей Степаненко
            21 февраля 2019, 14:51
            0
            [[+product_id:pdofield=`longtitle`]]
              Sergey (Sentinel)
              21 февраля 2019, 16:27
              0
              не работает так
              выводит вот
                Андрей Степаненко
                21 февраля 2019, 17:32
                0
                1
                [[+product_id:pdofield=`longtitle`]]
                2
                [[!+product_id:pdofield=`longtitle`]]
                3
                [[pdoField?
                    &id=`[[*id]]`
                    &field=`longtitle`
                ]]
                4
                [[!pdoField?
                    &id=`[[*id]]`
                    &field=`longtitle`
                ]]
                {$_modx->runSnippet('pdoField',['id' => $product_id, 'field' => 'longtitle'])}

                Блин думаю, чего туда постоянно пытаются вывести [[+longtitle]], [[+content]] и другие поля из ресурса
                Щас тока понял что давным давно в место того чтобы использовать [[+name]] я записал его как [[+pagetitle]] в чанке с шаблоном.

                Исправил на name
                <tr>
                    <td>[[+idx]]</td>
                    <td> [[+name]]</td>
                    <td align="right">[[+count]]</td>
                    <td align="right">[[%ms2_frontend_count_unit]]</td>
                    <td align="right">[[+price]]</td>
                    [[+nds.enabled:is=`1`:then=`
                        <td align="right">[[+nds.rate]]%</td>
                        <td align="center">[[+cost_nds]]</td>
                    `]]
                    <td align="center">[[+cost]]</td>
                </tr>
                P.S.: Проблем в том что в чанк, не выводится информация из ресурса. А выводится из таблицы с заказами, где хранится только: [[+name]] которой записывается во время создания заказа.

                То есть если ресурс удалится то pdoField вообще ничего не выведет
                  Sergey (Sentinel)
                  21 февраля 2019, 18:09
                  0
                  теперь понятно, спасибо
            Илья Александрович
            25 марта 2019, 01:54
            0
            Приветствую.
            Нужна помощь в следующем:
            1) имеем минишоп2
            2) данные из формы при оформлении заказа сохраняются:
            — 1 — в заказ, вкладка Адрес
            — 2 — в профиль Юзера
            3) имеем поле — extfld_org — и многие другие…
            как передать это поле в форму? в пдф?
              eflit
              28 июля 2023, 12:27
              0
              Здравствуйте, подскажите как изменить формат поля receiver в счете на оплату?
                Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                45