«Счет на оплату безналичным расчетом» для JoomShopping

JoomShopping компании MAXX marketing достойный компонент для создания интернет-магазинов. Но как и любой другой компонент, он имеет свои недостатки и порой требует немалых правок и изменений. В этой статье поговорим о том, как реализовать способ оплаты «Счет на оплату безналичным расчетом».

Сразу хотелось бы оговориться, решение не идеальное, т.к. необходимо будет править код в файлах компонента и в случае его обновления, все изменения будут потеряны.

Совет: Прежде чем производить какие-либо изменения, сделайте резервные копии файлов, с которыми работаете.

Как это работает?

Имеется два варианта решения вопроса.

1 — Свой вариант шаблона PDF

Для начала скачайте файл шаблона PDF (generete_pdf_order.php) из вложения в конце статьи, либо, если Вы не плохо обладаете знаниями PHP можете сами отредактировать имеющийся шаблон.

Итак, скачанный файл загрузите в директорию сайта /components/com_jshopping/lib/ заменив имеющийся.

В административной части сайта в разделе «Опции» создайте новый способ оплаты, если это необходимо.

Перейдите в настройки магазина на вкладку «Заказ» и установите галочку напротив значения «Присылать PDF-счет для заказчика», для того, чтобы счет приходил на почту заказчику в виде вложения.

Также в настройках магазина перейдите на вкладку «Информация о магазине» и заполните все поля в соответствии с пояснениями на изображении ниже

"Счет на оплату безналичным расчетом" для JoomShopping. Способ 1-ый.

«Счет на оплату безналичным расчетом» для JoomShopping. Способ 1-ый.

После сохранения всех данных, там же на вкладке «Информация о магазине» в самом низу, кликнув на ссылку «Просмотреть PDF», Вы сможете увидеть как примерно будет выглядеть Ваш счет.

Прежде, чем переходить к другим настройкам, давайте разберем второй способ.

2 — Addon RUS Invoice

Данный метод более оптимален, т.к. Вы спокойно сможете обновлять компонент JoomShopping.

Разработчики позаботились и о русскоязычном населении, предложив дополнение для компонента. Скачайте это дополнение по ссылке или из вложения в конце статьи. Установите его с помощью «Установка и обновление» внутри компонента JoomShopping.

Перейдите в «Опции → Дополнения» и нажмите кнопку редактирования напротив установленного дополнения. Укажите все необходимые данные в открывшемся окне.

В административной части сайта в разделе «Опции» создайте новый способ оплаты, если это необходимо.

Перейдите в настройки магазина на вкладку «Заказ» и установите галочку напротив значения «Присылать PDF-счет для заказчика», для того, чтобы счет приходил на почту заказчику в виде вложения.

Также в настройках магазина перейдите на вкладку «Информация о магазине» и заполните все поля в соответствии с пояснениями на изображении ниже

"Счет на оплату безналичным расчетом" для JoomShopping. Способ 2-ой.

«Счет на оплату безналичным расчетом» для JoomShopping. Способ 2-ой.

Как добавить подпись и штамп (печать)?

Вариант, который использую я — в настройках магазина на вкладке «Информация о магазине» в самом низу есть возможность указать изображения для верхнего и нижнего колонтитула. Добавьте в верхний колонтитул изображение штампа (печати), а в нижний — изображение подписи. Изображения должны быть на белом фоне и в формате JPG.

Теперь необходимо отредактировать файл шаблона PDF. Если Вы воспользовались первым способом, тогда Вам необходимо редактировать файл /components/com_jshopping/lib/generete_pdf_order.pdf, если же второй — /plugins/jshoppingorder/addon_rus_invoices_for_payment/ addon_rus_invoices_for_payment.php

Я использую второй метод, думаю им воспользуются большинство, поэтому опишу как править этот шаблон.

В файле addon_rus_invoices_for_payment.php найдите и закомментируйте следующие строки:

Поднимитесь и найдите следующие строки

Эта строка выводит итоговую стомость в счет и делает отступ до подписей директора и бухгалтера. После отступа сделайте вывод изображений:

Где первое изображение — это верхний колонтитул (штамп), а второе — нижний колонтитул (подпись). Откалибруйте позицию для изображений по горизонтали (у меня это 120 и 70, для первого и второго изображений соответственно) и по вертикали (у меня это $y-13 и $y-17).

Наверное Вы заметили, что мы сделали вставку изображений перед выводом блоков для подписей руководителя и бухгалтера. Сделано это для того, чтобы эти блоки прорисовывались после изображений, т.е. поверх них, это позволит изображениям не перекрывать поля и тексты (фон ведь у них белый).

Как отправлять счет только при определенных способах оплаты?

Может получиться так, что Вы не намерены отправлять PDF счет по всем способам оплаты, тогда Вам достаточно отредактировать файл /components/com_jshopping/models/checkout.php

Найдите строки:

И замените их наследующие:

Где $order->payment_method_id != 8 означает в моём случае, что не нужно отсылать PDF счет, если выбран способ оплаты с ID 8. Узнать свои идентификаторы оплаты Вы можете в административной части сайта, перейдя в «Опции → Способы оплаты» магазина, и просмотрев поле «id» напротив интересующих Вас способов оплаты.

UPDATE:

Начиная с версии 4.11 в Joomshopping была переделана структура функций и моделей, поэтому описанный выше код для отправки счета при определенных методах оплаты отсутствует. Для того, чтобы решить этот вопрос, необходимо открыть файл ordermail.php, расположенный в каталоге /components/com_jshopping/models и найти в нем следующий код:

Здесь необходимо исправить условие отправки PDF-счета следующим образом:

Как и выше, с помощью $this->order->payment_method_id != 8 мы указали ID метода оплаты, для которого не нужно отправлять PDF-счет.

В результате всех проделанных манипуляций получаем примерный результат, изображенный ниже

"Счет на оплату безналичным расчетом" для JoomShopping. PDF счет.

«Счет на оплату безналичным расчетом» для JoomShopping. PDF счет.

Как выводить правильные единицы измерения?

Те, кто решил воспользоваться дополнением Addon RUS Invoice, обратили внимание, что независимо от настроек в PDF-счете единица измерения остается неизменной, постоянно килограммы. Дело в том, что разработчики не позаботились о корректном отображении единиц измерения.

Итак, у нас уже установлен Joomshopping, Addon RUS Invoice и всё настроено должным образом. В Joomshopping в настройках имеется возможность изменить единицы измерения, но они применяются ко всем товарам, хотя нам необходимо, чтобы у разного типа товаров были свои единицы измерения.

Для этого переходим в «Joomshopping -> Настройки -> Функции магазина». Отмечаем галочки «Базовая цена» и «Единицы измерения». Также, в настройках необходимо перейти на вкладку «Заказ» и убедиться, что установлена галочка напротив поля «Базовая цена», иначе в таблицу заказов не будет заноситься информация о базовой цене и единицах измерения.

В «Joomshopping –> Опции» появится раздел «Единицы измерения», где мы можем добавить нужные для нас. Теперь переходим в карточку товара и на вкладке «Информация о товаре» в самом низу выбираем необходимую нам единицу измерения. Учитывая, что базовая цена рассчитывается как цена/базовая цена, то в поле «базовая цена» указываем единицу (1). Вам не обязательно работать с базовой ценой товара, этот функционал необходим нам исключительно для единиц измерения.

После того, как мы настроили все товары. Открываем файл /plugins/jshoppingorder/addon_rus_invoices_for_payment/ addon_rus_invoices_for_payment.php и находим следующую строчку:

Как видите, разработчики выводят единицу измерения обычной текстовой константой. Давайте исправим её на следующую:

Совет: Для тех, кому интересно, последний символ в строке означает выравнивание и может принимать следующие значения: L – по левому краю; R – по правому краю; C – по центру.

Если Вы сейчас попробуете просмотреть PDF-счет из административной части («Joomshopping -> Настройки -> Информация о магазине»), то увидите, что поле «Единица» пустое. Это связано с тем, что в PDF-счет таким способом добавляются демо-данные. Поэтому, чтобы убедиться в правильности проделанных действий, необходимо с лицевой части сайта произвести покупку товара.

Важно: Помните, что сделанные заказы в Joomshopping заносятся в базу данных единожды. Если Вы произвели какие-либо изменения в товарах и хотите увидеть результат, Вам необходимо сделать новый заказ.

Ничего сложного!

На этом всё, счет на оплату безналичным расчетом для JoomShopping готов. Если у Вас имеются свои методы решения данного вопроса, предлагаю поделиться ими в комментариях.

Вложения

Шаблон PDF счета PHP файл для замены имеющегося файла генерации PDF счета
Аддон RUS Invoices 1.0.5 Аддон для компонента JoomShopping. Устанавливать через "Установка и обновления" самого JoomShopping

Полезность статьи

Оцените, на сколько полезной оказалась статья.
1 балл2 балла3 балла4 балла5 баллов
5,00 / 5 баллов
2 участников
Комментарии
  • Xem
    Здравствуйте!
    Подскажите, а если не нужно отправлять PDF при нескольких вариантах?
    Можно как-то указать при 8 и 7 id не отправлять?
    • Blog About
      Да, конечно.
      if ($pdfsendtype && $this->order->payment_method_id != 7 && $this->order->payment_method_id != 8){
      Здесь по условию счет не будет отправлен, если выбран способ оплаты 7 или 8.

Добавить комментарий

* - поля обязательные для заполнения. E-mail не публикуется.