Форма 7 и форма 112 для Почты России

Как бы не ругали Почту России, но основная масса интернет-магазинов отправляет посылки покупателям в том числе и через неё. И если у Вас достаточно большой объем заказов (а именно к этому мы все и стремимся) — возникает вопрос автоматизации оформления документов для отправки посылок Почтой России.

К моему удивлению за 3 года работы в сфере сайтостроения впервые столкнулся с вопросом автоматизации оформления документов для отправки посылок Почтой России. Скорей всего дело в том, что многие наши клиенты просто не знают о такой возможности, а может просто попался настолько ленивый клиент, что ему не хочется вручную заполнять все эти формы и бланки.

К тому же, проблема состоит в том, что мне никогда не приходилось заниматься отправкой посылок Почтой России, разве что однажды, в 90-ые годы выписывал из журналов какие-то книги, но всё же это не то, т.к. я получал, а не отправлял.

Недолго думая я полез в интернет за решением. Поиск не увенчался успехом. В качестве решения предлагалось использовать сторонние сервисы за «символическую» плату. Под словом «символическая» я подразумеваю приличную помесячную оплату сервиса.

А если вы читаете эту статью, значит вы такие же как и я — не любители платить. А клиентам объяснить, что им придется еще куда-то платить каждый месяц, еще сложнее.

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

Вывод, как всегда решил сделать всё по своему.

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

Решение не идеальное, но очень простое: мы возьмем формы в виде картинок и заполним их, а потом выведем на экран.

Итак, для примера мы возьмем 4 наиболее распространенные почтовые формы:

  • Форма 7 адресный ярлык. Отправление 1 класса;
  • Форма 7 адресный ярлык. Бандероль;
  • Форма 7 адресный ярлык. Посылка;
  • Форма 112ЭП Наложенный платеж + почтовый перевод.
Форма 7 и форма 112 для Почты России. Форма 7А

Форма 7 и форма 112 для Почты России. Форма 7А

Форма 7 и форма 112 для Почты России. Форма 7Б

Форма 7 и форма 112 для Почты России. Форма 7Б

Форма 7 и форма 112 для Почты России. Форма 7П

Форма 7 и форма 112 для Почты России. Форма 7П

Форма 7 и форма 112 для Почты России. Форма 112ЭФ

Форма 7 и форма 112 для Почты России. Форма 112ЭФ

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

Создайте каталог на сервере в удобном для вас месте и назовите его к примеру print_form. В нем создайте каталог fonts и добавьте в него удобные для вас шрифты (обязательно в формате ttf).

Важно: Обязательно возьмите шрифт post.ttf из вложения в конце статьи, т.к. он понадобится для написания почтового индекса (ZIP кода).

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

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

Создайте в каталоге print_form файл f7.php со следующим содержимым:

Файл f7.php содержит в себе 4 функции:
getDataF7() — в этой функции происходит формирование данных прежде, чем их размещать на форме. В эту функцию передается ID заказа, для которого будут формироваться данные. Именно здесь, имея ID заказа, вам необходимо сформировать запрос в базу данных, чтобы получить данные.
printF7A() — Функция оформления формы 7, отправление 1 класса
printF7B() — Функция оформления формы 7, бандероль
printF7P() — Функция оформления формы 7, посылка

3 функции оформления сделаны по причине того, что сами формы хоть и похожи, но немного отличаются друг от друга, поэтому не получится использовать одни и теже координаты для разных форм.

Остановимся, и разберем код немного подробнее. Обратите внимание на переменную $font. В нее мы передаем путь к файлу шрифтов. В данном примере я использую шрифт «Times New Roman bold». Если вы используете свой шрифт, обязательно укажите его в этой переменной.

Точно также, переменная ниже $font_post содержит путь к файлу шрифтов, который я позаимствовал в интернете и немного модифицировал, чтобы он наиболее идеально вписывался в нашу форму. Этот шрифт позволит нам написать почтовый индекс (ZIP код) точно так, как предлагается в образце на оборотной стороне конверта.

После этого начинаем рисовать надпись на нашем изображении с помощью imagettftext(ИЗОБРАЖЕНИЕ, РАЗМЕР ШРИФТА, НАКЛОН, ПОЗИЦИЯ ПО X, ПОЗИЦИЯ ПО Y, ЦВЕТ ТЕКСТА, ШРИФТ, ТЕКСТ). Абсолютно ничего сложного.

Теперь создайте в каталоге print_form файл f112.php и добавьте в него код:

В данном файле 2 функции:
getDataF112() — аналогичен функции getDataF7();
printB112EP() — Функция оформления формы 112ЭП.

Важно: В функции getDataF7() и getDataF112() данные об отправителе и получателе заполняются по разному. Т.е. в форме 7 отправителем является администратор сайта, а получателем — заказчик, в то время как в форме 112 отправитель — заказчик, а получатель — администратор.

Учитывая, что я никогда не занимался отправкой посылок Почтой России, то я могу ошибаться в плане заполнения формы. Если вы обнаружили ошибку, отпишите о ней в комментарии, постараюсь исправить.

Также обратите внимание на отсутствие переменной $font_post, в данной форме нет необходимости писать ZIP-код, поэтому и подключать шрифт нет необходимости. А вот в переменной $font я подключил специальный моноширинный шрифт PT Mono bold. Дело в том, что на форме 112 во многих полях необходимо писать текст в специальных клеточках, а пропорциональные шрифты имеют разную ширину, соответственно при всём желании станет невозможным правильно вписать текст.

Создайте файл print_form.php со следующим содержимым:

Здесь мы подключаем ранее созданные нами файлы с функциями. Получаем ID заказа и тип формы из ссылки, после чего на основании полученного типа вызываем соответствующую функцию.

Создайте файл sumprop.php со следующим содержимым:

Здесь описана лишь одна функция, которая преобразует цифры в прописные. Подобная функция — это отдельная тема для статьи, поэтому, чтобы сильно не утруждать себя в решении этого вопроса, я просто позаимствовал эту функцию из аддона к Joomshopping.

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

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

id — передаем ID заказа, по которому будут формироваться данные из базы данных;
type — тип формы, которую будем распечатывать

Форма 7 и форма 112 для Почты России. Примерный результат

Форма 7 и форма 112 для Почты России. Примерный результат

Вы можете скачать рабочий пример из вложения в конце статьи.

В принципе, это всё. Аналогичным образом вы можете добавить другие формы, принцип полагаю ясен. Также можно сделать сохранение изображения на сервере или на компьютере пользователя, или вывести изображение в PDF, но это уже дело каждого, кому как удобнее.

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

Оцените, на сколько полезной оказалась статья.
1 балл2 балла3 балла4 балла5 баллов
Пока оценок нет
Комментарии

Здесь еще никто не оставлял комментарии.

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

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