В отдел разработки VIPRO обратился знакомый клиент с просьбой помочь с программированием калькулятора доставки на новом сайте. Со слов клиента, работы совсем немного, вся логика калькуляции уже прописана. Оставалось запрограммировать отправку e-mail с красивым PDF-файлом, содержащим расчёты данных из формы калькулятора. Но дьявол, как водится, – в деталях. Сайт клиента – на Tilda. Конструкторе сайтов, который не поддерживает никакие серверные вычисления и операции, не имеет доступного хранилища файлов.
Задача необычная и на первый взгляд оценивалась как сложная разработка с целой серией потенциальных подводных камней. А бюджет позволял выделить на эту работу не больше одного дня.
Предупреждение:
Какие были наши варианты?
- Программировать на JavaScript, выполняемом на стороне посетителя. Этот вариант очень плох, хотя бы тем, что браузерный JavaScript не может отправлять письма.
- Уговорить клиента арендовать любой, хотя бы самый дешёвый хостинг, поддерживающий серверные языки программирования. И либо перенести на него сайт (к слову, состоящий из одной этой формы), либо использовать в паре с Tilda.
Клиент был непреклонен, аргументируя тем, что большая часть работы уже проделана:
- Форма отправляет данные новой строкой в таблицу Google Sheets (Tilda так умеет);
- В таблице уже настроены все формулы вычисления.
А остаётся лишь:
- При добавлении новой строки в таблицу, копировать её на другой лист, где её данные подхватят ячейки с формулами расчётов;
- Скопировать результаты расчётов, подставить в шаблон и сгенерировать красивый брендированный PDF;
- Отправить PDF на почту посетителя, заполнившего форму.
Нам это показалось уже совсем нереальным в рамках скромного бюджета. Хотелось намекнуть клиенту, что он может самостоятельно завершить начатую работу, используя облачные решения вроде Zapier, объединяющие разные сервисы и реагирующие на события в них. Но тут мы открыли для себя Apps Script.
Что такое Apps Script?
Google позиционирует это как платформу, позволяющую быстро и легко разрабатывать бизнес-решения, плотно интегрированные с сервисами Google, расширяя их функционал и автоматизируя задачи. Без сложных взаимоотношений, подписок, регистраций. Любой аккаунт Google имеет доступ к среде разработки.
Что это нам дало?
Имея возможность программировать в среде, нативно объединяющей Gmail, Google Sheets и Google Drive и поддерживающей триггеры событий – мы смогли в рамках бюджета реализовать все пожелания клиента:
- При появлении новой строки в таблице – копировать её данные на другой лист;
- Вычисленные формулами данные подставлять в ячейки третьего листа, в котором мы визуально повторили фирменный бланк;
- Генерировать из третьего листа PDF-файл с номером заявки в качестве имени. Эти файлы сохраняются в папке на Google Drive;
- Отправлять письмо с прикреплённым файлом с официальной почты компании. При этом все письма сохраняются в папке отправленных.
Заключение
Мы успешно и в полной мере реализовали задачу, которая ни с первого, ни со второго, ни с третьего раза не казалась нам выполнимой в заданных условиях. Это оказался очень полезный урок – для восприятия иногда полезно игнорировать слово "Невозможно". Клиент доволен, а мы открыли новые возможности.