Requiply

Власні шаблони експорту

Створюйте друковані PDF, які формуються з оренди: договір оренди, контракт, акт приймання-передачі, акт повернення або пакувальний лист.

На сторінці Власні шаблони експорту адміністратори створюють друковані PDF-документи, які Requiply формує з бронювання: договори оренди, акти приймання-передачі та повернення, чеклісти видачі, внутрішні пакувальні листи чи будь-які інші документи, які ваш бізнес передає клієнту або зберігає для себе.

Саме звідси береться договір оренди. Напишіть текст тут один раз. Після цього кожне бронювання можна буде роздрукувати або надіслати листом як готовий договір з уже заповненими імʼям клієнта, датами, товарами й цінами. Щоб роздрукувати договір для конкретного бронювання, відкрийте бронювання й експортуйте його: див. Документи бронювання.

Ця сторінка розташована в Налаштування → Бронювання → Власні шаблони експорту.

Лише для адміністраторів. Інших співробітників перенаправляє на екран відмови в доступі.

Кожен шаблон показано карткою з позначкою PDF документ і попереднім переглядом тексту як простого тексту.

Чому ця сторінка важлива

Requiply вже формує рахунок для кожного бронювання. Шаблони експорту покривають усе інше. Щойно шаблон створено, він зʼявляється в діалозі Експорт будь-якого бронювання. Співробітники можуть одним натисканням отримати заповнений PDF, готовий до друку, для цього бронювання, без копіювання даних бронювання у файл Word.

Типові документи, які організації створюють тут:

  • Договір оренди зі сторонами, датами бронювання, таблицею обладнання, нарахуваннями, заставою та місцями для підписів.
  • Акт приймання-передачі та повернення з примітками про стан і підтвердженнями в обидва боки.
  • Лист видачі або пакування для складу.
  • Акт про пошкодження чи інцидент, заздалегідь заповнений даними бронювання та клієнта.

Хто може користуватися цією сторінкою

  • Лише адміністратори. Користувачів без ролі адміністратора перенаправляє на екран відмови в доступі.
  • Обмежень тарифу чи прапорців функцій для шаблонів немає: кожна організація може створити стільки шаблонів, скільки потрібно.
  • Користуватися готовим шаблоном можуть не лише адміністратори. Кожен, хто може відкрити діалог Експорт бронювання, може сформувати документ.

Що ви побачите

Сторінка завантажує шаблони поточної організації й показує їх сіткою карток із перенесенням рядків. Під час завантаження в тому самому макеті зʼявляються три заповнювачі.

Кожна картка шаблону показує:

  • Назву шаблону (обрізану, повна назва в підказці при наведенні).
  • Позначку PDF документ.
  • Поле Попередній перегляд документа з першими рядками тексту документа як простим текстом.
  • Кнопку редагування (олівець), яка відкриває сторінку Додавання або редагування шаблону експорту.

Після карток заокруглена кнопка Створити шаблон з іконкою плюса відкриває сторінку додавання.

Порожній стан

Requiply не має вбудованих шаблонів експорту. Нова організація починає без жодного, а діалог Експорт у бронюванні пропонує лише PDF рахунок-фактура, доки не створено перший шаблон.

Коли список порожній, сторінка показує заповнювач у центрі з іконкою PDF, заголовком «Власних шаблонів експорту ще немає», підзаголовком «Створюйте друковані документи, як-от договори оренди чи акти приймання-передавання, що заповнюються даними бронювання під час експорту» та дією Створити шаблон.

Основні дії

Додавання шаблону

Створити шаблон (кнопка з плюсом або кнопка в порожньому стані) відкриває сторінку Додавання або редагування шаблону експорту. Після збереження ви повертаєтеся до списку, а сповіщення підтверджує Document template "<name>" created (в українському інтерфейсі «Шаблон документа «назва» створено»).

Редагування шаблону

Іконка олівця на картці відкриває ту саму сторінку в режимі редагування з діями Зберегти та Видалити.

Видалення шаблону

Видаляють шаблон на сторінці редагування через простий діалог підтвердження. На відміну від шаблонів листів, на шаблони експорту не посилаються автоматизації. Тож перевірки посилань немає: видалення відбувається одразу після підтвердження.

Увага: видалений шаблон одразу зникає з діалогу Експорт для всіх. Уже завантажені документи не змінюються, проте відновити шаблон неможливо.

Доступні змінні

Текст документа є звичайним HTML з токенами {{variable}}. Під час експорту Requiply замінює кожен токен даними бронювання, для якого формується документ.

Змінні бронювання, клієнта та організації

ЗміннаЗамінюється на
{{documentDate}}Дату формування документа (сьогодні, у часовому поясі організації).
{{clientName}}Повне імʼя клієнта.
{{clientFirstName}}Імʼя клієнта.
{{clientLastName}}Прізвище клієнта.
{{clientEmail}}Email клієнта.
{{clientPhone}}Номер телефону клієнта.
{{bookingId}}Номер бронювання, як він показаний у Requiply.
{{bookingStartDate}}Дату початку бронювання.
{{bookingStartDateTime}}Дату й час початку бронювання.
{{bookingEndDate}}Дату завершення бронювання.
{{bookingEndDateTime}}Дату й час завершення бронювання.
{{bookingDays}}Оплачувані дні оренди: період бронювання в розпочатих 24-годинних періодах, так само як нараховуються ціни за день, з уже застосованим коригуванням вартості в періодах. Видача в пʼятницю о 10:00 і повернення в понеділок о 10:00 дають 3 або 2 з коригуванням −1 період.
{{bookingStatus}}Назву поточного статусу бронювання.
{{bookingTotal}}Суму бронювання у валюті організації.
{{bookingDeposit}}Суму застави (порожня, якщо застави немає).
{{bookingTotalCharged}}Суму оренди плюс заставу.
{{bookingBundleDiscount}}Загальну економію від заброньованих комплектів, наприклад 19,20 $, уже врахована в {{bookingTotal}}. Порожня, якщо в бронюванні немає комплекту.
{{bookingAdjustment}}Коригування вартості бронювання: −1 період або +2 періоди для оплачуваних періодів, −10% для відсотка, просте число на кшталт −25 для фіксованої суми. Порожня без коригування. Її немає у списку змінних, вводьте вручну.
{{bookingAdjustmentReason}}Вказану причину коригування. Її немає у списку змінних.
{{bookingAdjustmentAmount}}Грошовий ефект відсоткового коригування або коригування на фіксовану суму, наприклад −9,00 $. Порожня для оплачуваних періодів. Її немає у списку змінних.
{{bookingItems}}Повну HTML-таблицю заброньованих товарів. За замовчуванням показує SKU, назву, кількість, ціну та суму, див. Вибір колонок таблиці. Заброньовані комплекти додають у кінці рядок знижки, див. Комплекти в таблиці товарів.
{{bookingItemsQuantity}}Загальну кількість заброньованих одиниць, наприклад 7 для 4 стільців і 3 столів. Ще не призначені одиниці теж враховуються. Порожня, якщо в бронюванні немає товарів.
{{bookingItemsTotal}}Вартість оренди заброньованих товарів за період бронювання після знижок за комплекти. Послуги та продані товари не входять. Це та сама сума, що в клітинці total рядка підсумків таблиці товарів. Порожня, якщо в бронюванні немає товарів.
{{bookingItemsFullPriceTotal}}Суму оціночної вартості всіх заброньованих одиниць, тобто скільки вам коштувало орендоване обладнання, наприклад для пункту про відповідальність або страхову вартість. Порожня, якщо жоден заброньований товар не має оціночної вартості.
{{bookingServices}}Повну HTML-таблицю послуг бронювання. За замовчуванням показує назву, ціну та суму, див. Вибір колонок таблиці.
{{bookingSaleItems}}Таблицю товарів, проданих у бронюванні (Продажі), без урахування повернень. За замовчуванням показує назву, кількість, ціну та суму, див. Колонки таблиці проданих товарів. Порожня, якщо нічого не продано.
{{bookingSaleTotal}}Сума проданих товарів: чиста сума товарів, проданих у бронюванні, уже врахована в {{bookingTotal}}. Порожня, якщо нічого не продано.
{{bookingRentTotal}}Вартість бронювання без проданих товарів: {{bookingTotal}} мінус продані товари, тобто оренда, послуги, знижки та коригування. У бронюванні без проданих товарів дорівнює {{bookingTotal}}. Використовуйте разом із {{bookingSaleTotal}}, щоб показати оренду та товари окремими рядками над сумою до сплати, див. Окремі рядки для оренди та проданих товарів у підсумку.
{{organizationName}}Назву організації.
{{organizationEmail}}Контактний email організації.
{{organizationPhone}}Контактний номер телефону організації.
{{organizationLogoUrl}}Вебадресу логотипа для світлого режиму з Інформації організації для використання в тегу зображення: <img src="{{organizationLogoUrl}}">. Порожня, якщо логотип не завантажено. Див. Логотип на документі.
{{bookingItems}} і {{bookingServices}} вставляють цілу таблицю, а не значення. Ставте їх в окремий рядок, а не всередину речення. Заголовки їхніх колонок локалізовано мовою організації, а ціни показано у валюті організації.

Вибір колонок таблиці

Якщо написати {{bookingItems}} просто так, таблиця покаже колонки за замовчуванням. Якщо додати список колонок у квадратних дужках, таблиця покаже саме ті колонки, які ви назвали, у тому порядку, у якому ви їх назвали:

{{bookingItems[index, name, serial, qty, price, total]}}

Елементи розділяються комами й пишуться без лапок. Невідомий елемент ігнорується. Без дужок діють значення за замовчуванням: SKU, назва, кількість, ціна та сума для товарів, а також назва, ціна та сума для послуг.

Власні заголовки колонок

Кожна колонка має стандартний заголовок мовою організації, наприклад Назва чи К-сть. Щоб використати власне формулювання, напишіть його після назви колонки через двокрапку:

{{bookingItems[index, name:Equipment, qty:Units, total:Amount]}}

Заголовок є довільним текстом будь-якою мовою, тож український договір може показувати {{bookingItems[name:Найменування, qty:Кількість]}}. Це працює для кожної колонки в усіх трьох таблицях, зокрема для колонок власних полів: groupField_weight_kg:Weight (kg).

Заголовок не може містити кому чи закривну квадратну дужку. Кома починає наступну колонку, а ] завершує список. Тож qty:Qty, pcs покаже колонку із заголовком Qty і відкине невідомий елемент pcs. Натомість пишіть qty:Qty (pcs) і не використовуйте лапок.

Колонки таблиці товарів

КолонкаПоказує
indexНомер рядка.
imageФото товару як невелику квадратну мініатюру: фото, позначене в товарі як основне, а якщо такого немає, перше фото. Колонка не має заголовка, якщо ви його не задасте, наприклад image:Photo.
skuSKU, ідентифікатор в організації.
serialСерійний номер одиниці від виробника.
nameНазву товару.
categoryКатегорію.
qtyКількість.
priceЦіну за одиницю.
priceTypeТариф: за добу, за годину, за місяць або фіксована.
depositЗаставу за одиницю.
full_priceОціночну вартість, тобто скільки вам коштувало обладнання.
full_price_totalОціночну вартість, помножену на кількість, наприклад 2 400,00 $ за дві камери вартістю 1 200,00 $ кожна.
totalСуму за рядком.
itemField_<field key>Власне поле на рівні одиниці.
groupField_<field key>Власне поле на рівні товару.
blank:LabelПорожню колонку із заголовком Label для клітинок, які заповнюють вручну.
totalsНе колонка: додає рядок підсумків унизу таблиці, див. Рядок підсумків.

Рядки товарів ідуть у порядку додавання товарів у бронювання. Кожен експорт того самого бронювання показує їх у тому самому порядку. Товари, збережені разом (наприклад, усе, що вибрали під час створення бронювання), упорядковано за назвою з порівнянням чисел як чисел (Light 2 перед Light 10). Товари, додані в бронювання пізніше, ідуть після них у порядку додавання. Одиниці одного товару впорядковано за SKU.

Рядок підсумків

Якщо додати totals будь-де у список колонок, таблиця завершиться рядком підсумків. У колонці назви буде Всього: (у таблиці без name це перша колонка без власної суми), а кожна колонка, яку можна підсумувати, показує суму:

{{bookingItems[index, name, qty, deposit, full_price_total, total, totals]}}
КолонкаСума в рядку підсумків
qtyУсі заброньовані одиниці.
depositЗастава за одиницю, помножена на кількість, підсумована за всіма рядками.
full_price_totalОціночна вартість усього заброньованого. Це та сама сума, що й {{bookingItemsFullPriceTotal}}.
totalВартість оренди всіх товарів після знижок за комплекти. Тож вона збігається з рядками вище (включно з рядком комплекту) та дорівнює {{bookingItemsTotal}}.
itemField_… та groupField_… для поля типу ЧислоЗначення поля, помножене на кількість у кожному рядку, підсумоване. Товар вагою 2,5 кг, заброньований 4 рази, дає 10.

Інші колонки, як-от price, full_price чи текстові поля, у рядку підсумків залишаються порожніми. Сам totals, тобто {{bookingItems[totals]}}, показує колонки за замовчуванням із рядком підсумків. Підпис залежить від мови організації: Total: в англійських документах, Всього: в українських.

totals працює і в інших двох таблицях: {{bookingServices[name, total, totals]}} підсумовує суми послуг, а {{bookingSaleItems[name, qty, total, totals]}} підсумовує кількість і суму проданих товарів.

Комплекти в таблиці товарів

Бронювання з комплектом отримує в кінці кожної таблиці {{bookingItems}} додатковий рядок для кожного комплекту незалежно від вибраних колонок:

  • У колонці назви (або в першій колонці, якщо таблиця не має name) написано Подкаст-комплект на двох: знижка на комплект 10%, а під ним дрібним сірим текстом Склад: ….
  • Колонка total містить відʼємну суму, наприклад -19,20 $. Таблиця без колонки total додає суму до підпису: Подкаст-комплект на двох: знижка на комплект 10% (-19,20 $).
  • Інші клітинки залишаються порожніми, а рядок не має номера.

Рядки товарів зберігають повні ціни, тож разом із рядком комплекту таблиця в сумі дає {{bookingTotal}}. Шаблони, написані до появи комплектів, змінювати не треба.

Колонки таблиці послуг

index, name, price, priceType, total, blank:Label. Для рядка підсумків із сумою total є totals.

Колонки таблиці проданих товарів

index, sku, name, qty, price, total, blank:Label. Для рядка підсумків із сумами qty та total є totals. Без дужок таблиця показує name, qty, price, total. Приклад зі списком колонок: {{bookingSaleItems[index, sku, name, qty, price, total]}}.

Колонки для окремих одиниць розбивають рядки.serial і будь-яка колонка itemField_* описують одну фізичну одиницю. Тому, якщо додати будь-яку з них, таблиця показує один рядок на одиницю замість одного рядка на товар. Рядок із 3 штативами стає трьома рядками, кожен зі своїм серійним номером.
Порожні колонки зникають. Колонки image, sku, serial, full_price, full_price_total прибираються з таблиці, якщо в жодному рядку немає значення. Так документ не містить колонки з порожніми клітинками. Бронювання, у якому жоден товар не має фото, не показує колонку image, а SKU та серійні номери зʼявляються після призначення одиниць. Виняток становить blank:Label: вона задумана порожньою й показується завжди.
Порада:blank:Condition і blank:Signature перетворюють таблицю товарів на акт приймання-передачі, який співробітник і клієнт заповнюють ручкою на стійці.

Змінні власних полів

Кожне власне поле, налаштоване на рівні Клієнт, Бронювання або Організація, також доступне як змінна. Requiply утворює токен із ключа поля та префікса рівня:

Рівень сутностіШаблон токенаПриклад
Клієнт{{clientField_<field key>}}{{clientField_passport_number}}
Бронювання{{bookingField_<field key>}}{{bookingField_delivery_notes}}
Організація{{organizationField_<field key>}}{{organizationField_vat_number}}

Вони зʼявляються у випадному списку Вставити змінну поруч із вбудованими з назвою поля та його рівнем, наприклад Passport number (Client). Поля-прапорці показуються як локалізовані Так/Ні, а поля з множинним вибором як список через кому.

Поля дати й числа показуються мовою документа, так само як колонки таблиці itemField_ та groupField_:

Тип поляАнглійський документУкраїнський документ
Дата10/13/2026 (спершу місяць)13.10.2026
Дата з часом10/13/2026 14:30, 24-годинний формат у часовому поясі організації13.10.2026 14:30
Число2.5, десяткова крапка2,5, десяткова кома

Числа показуються щонайбільше з двома знаками після коми й без розділювача тисяч: 12500 залишається 12500.

Щоб створити поле, див. Поля сутностей. Щоб привʼязати його до рівня Клієнт, Бронювання або Організація, див. Конфігурації рівнів.

Підсумки полів товарів і одиниць

Числове власне поле на рівні товару або одиниці можна підсумувати за всім, що є в бронюванні. Наприклад, так рахують загальну вагу для планування транспорту чи загальну потужність освітлення:

ТокенЩо підсумовує
{{groupFieldTotal_<field key>}}Поле рівня товару, враховане один раз на кожну заброньовану одиницю. Товар вагою 2,5 кг, заброньований 4 рази, додає 10.
{{itemFieldTotal_<field key>}}Поле рівня одиниці, кожна заброньована одиниця зі своїм значенням. Одиниця, ще не призначена бронюванню, враховується зі значенням поля за замовчуванням.
<p>Total weight: {{groupFieldTotal_weight_kg}} kg</p>

Результатом є просте число у форматі документа, наприклад 1,234.5 англійською та 1 234,5 українською. Якщо жодна заброньована одиниця не має значення в цьому полі, токен нічого не показує. Тож загорніть його в {{#if groupFieldTotal_weight_kg}}…{{/if}}, якщо речення навколо теж має зникати.

Використовуйте поле типу Число: значення, які не читаються як число, пропускаються. Цих токенів немає у випадному списку Вставити змінну, вводьте їх вручну. Щоб показати суму під колонкою таблиці, додайте до таблиці товарів колонку groupField_ або itemField_ разом із totals, див. Рядок підсумків.

Умовні блоки

Шаблони експорту підтримують одну логічну конструкцію: необовʼязковий блок, який показується, лише коли змінна має значення.

{{#if bookingDeposit}}
  <p>Security deposit held: {{bookingDeposit}}</p>
{{/if}}

Вміст блоку залишається, коли змінна має непорожнє значення. Якщо значення немає, блок повністю прибирається. Блоки можна вкладати один в одного. Гілок else, циклів чи порівнянь немає: усе інше залишається в документі як звичайний текст.

Умовні блоки є функцією шаблонів експорту. Шаблони листів їх не підтримують.

Як формуються документи

Коли хтось експортує документ із бронювання:

  1. Requiply завантажує шаблон і бронювання.
  2. Спершу обробляються умовні блоки, а потім кожен токен замінюється даними бронювання. Текстові значення екрануються як HTML, щоб імʼя клієнта чи примітка не зламали макет. Таблиці товарів і послуг вставляються як HTML.
  3. Результат перетворюється на PDF формату A4 з полями 15 мм.
  4. Файл завантажується як <template name>-<booking number>.pdf.

Дати й час форматуються в часовому поясі організації з налаштувань дати і часу, а суми показуються у валюті організації. Заголовки таблиць, підпис Всього: у рядку підсумків, значення Так/Ні та формат власних полів дати й числа залежать від мови організації.

Де використовуються шаблони

Діалог Оберіть тип експорту спершу показує PDF-рахунок, а потім кожен шаблон експорту за назвою.

Шаблони зʼявляються в діалозі Експорт, який співробітники відкривають:

Діалог має заголовок Оберіть тип експорту й спершу показує PDF рахунок-фактура, а за ним кожен шаблон експорту за назвою. Вибір шаблону й підтвердження формують і завантажують цей документ для бронювання.

Типові сценарії

Створення договору оренди

  1. Відкрийте Створити шаблон і назвіть його Rental agreement.
  2. Залиште редактор тексту в режимі HTML і розмітьте розділи: сторони, період бронювання, обладнання, нарахування, відповідальність, підписи.
  3. Вставте з випадного списку Вставити змінну такі змінні: {{organizationName}}, {{clientName}}, {{bookingStartDateTime}}, {{bookingEndDateTime}}, {{bookingItems}}.
  4. Загорніть абзац про заставу в {{#if bookingDeposit}}…{{/if}}, щоб він зникав у бронюваннях без застави.
  5. Перевірте попередній перегляд наживо, а потім збережіть.

Логотип на документі

Завантажте логотип для світлого режиму в Інформації організації, а потім додайте його вгорі шаблону в тегу зображення:

{{#if organizationLogoUrl}}
  <img src="{{organizationLogoUrl}}" alt="{{organizationName}}" style="max-height:60px;">
{{/if}}

Блок {{#if …}} зберігає шаблон охайним для організації без логотипа. Попередній перегляд наживо не має логотипа, тому там блок прихований: щоб побачити логотип, експортуйте реальне бронювання.

Пакувальний лист із фото та загальною вагою

  1. Створіть поле типу Число, наприклад Weight (kg) з ключем weight_kg на рівні товару. Заповніть його у своїх товарах (див. Поля сутностей).
  2. Створіть шаблон Packing list і додайте таблицю товарів із фото, власними заголовками та рядком підсумків:
    {{bookingItems[index, image:Photo, name:Item, qty:Qty, groupField_weight_kg:Weight (kg), blank:Packed, totals]}}
    
  3. Під таблицею додайте {{#if groupFieldTotal_weight_kg}}<p>Total weight: {{groupFieldTotal_weight_kg}} kg</p>{{/if}} та <p>Units to pack: {{bookingItemsQuantity}}</p>.

Рядки йдуть у порядку додавання товарів у бронювання, а рядок підсумків під колонкою ваги показує вагу всього, що є в бронюванні.

Період оренди та страхова вартість у договорі

Опишіть період і вартість обладнання словами, під якими підписується клієнт:

<p>Rental period: {{bookingDays}} days, from {{bookingStartDateTime}} to {{bookingEndDateTime}}.</p>
<p>Rent for the equipment: {{bookingItemsTotal}}.</p>
{{#if bookingItemsFullPriceTotal}}
  <p>Total value of the equipment handed over: {{bookingItemsFullPriceTotal}}.</p>
{{/if}}

Окремі рядки для оренди та проданих товарів у підсумку

Коли бронювання містить товари, продані через Продажі (наприклад, карти памʼяті чи батареї), багато клієнтів хочуть бачити оренду й покупку окремими рядками. Обидві суми є у випадному списку Вставити змінну як Вартість бронювання без проданих товарів і Сума проданих товарів:

<table>
  <tr><td>Rent and services</td><td>{{bookingRentTotal}}</td></tr>
  {{#if bookingSaleTotal}}
    <tr><td>Goods sold</td><td>{{bookingSaleTotal}}</td></tr>
  {{/if}}
  <tr><td><strong>Total to pay</strong></td><td><strong>{{bookingTotal}}</strong></td></tr>
</table>

Ці два рядки завжди в сумі дають {{bookingTotal}}. Блок {{#if …}} приховує рядок товарів у бронюваннях без проданих товарів, тож один шаблон працює для кожного бронювання.

Чернетка від асистента

Натисніть Створити з асистентом Requiply біля редактора тексту й опишіть потрібний документ. Асистент поверне повну чернетку, готову до друку, з правильними токенами на своїх місцях. Її можна застосувати в редакторі одним натисканням. Див. Асистент Requiply.

Дані, специфічні для вашого бізнесу

Якщо договору потрібні номер паспорта, код ПДВ чи адреса доставки, яких Requiply не зберігає за замовчуванням, спершу створіть власне поле на рівні Клієнт, Бронювання або Організація. Після цього воно зʼявиться у випадному списку Вставити змінну для кожного шаблону.

Поради та застереження

Порада: створюйте документи в режимі HTML. Договорам і актам потрібні таблиці, заголовки та структура сторінки, які текстовий редактор спростить.
Порада: використовуйте {{#if …}} для всього необовʼязкового: застав, приміток щодо доставки, власних полів, які заповнюють не завжди. Так один шаблон підходить для кожного бронювання, тож не доводиться підтримувати кілька майже однакових.
Порада: додавайте totals до таблиці замість того, щоб вписувати суми в текст навколо неї. Рядок підсумків завжди збігається з рядками вище, включно зі знижками за комплекти.
Увага: попередній перегляд наживо використовує зразкові дані, а не реальне бронювання. Після створення шаблону один раз експортуйте реальне бронювання, щоб переконатися, що таблиці й суми стоять там, де ви очікуєте.
Copyright © 2026