Для заказов
Примеры шаблонов документов для заказов на русском языке.
Инструкции:
1. Товарный чек

Тип шаблона: Заказы.
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Товарный чек</title>
</head>
<body>
<div class="container">
{# ======================================================= #}
{# БЛОК: ШАПКА — логотип и контакты магазина #}
{# Замените выделенный желтым текст на свои реальные данные #}
{# ======================================================= #}
<table class="width100">
<tbody>
<tr>
{# Логотип: замените src на прямую ссылку на свое изображение #}
<td class="logo-wrapper" valign="top">
<img src="https://blog.keycrm.app/wp-content/uploads/2025/12/cropped-keycrm-logo-blue-on-transparent-160x53.png" style="width: 200px;" alt="">
</td>
{# Адрес и email магазина #}
<td valign="top">
<span style="background-color: yellow">г. Киев, ул. Крещатик, 1</span><br />
<span style="background-color: yellow">demo@ukr.net</span><br />
</td>
{# Телефоны магазина #}
<td valign="top">
<span style="background-color: yellow">тел.: (011)777-77-77</span><br />
<span style="background-color: yellow">тел.: (011)777-77-77</span><br />
<span style="background-color: yellow">тел.: (011)777-77-77</span><br />
</td>
</tr>
</tbody>
</table>
<br /><br /><br />
{# ======================================================= #}
{# БЛОК: РЕКВИЗИТЫ — поставщик и получатель #}
{# Левый столбец: ваши данные (заменить желтое) #}
{# Правый столбец: данные клиента из CRM (авто) #}
{# ======================================================= #}
<table class="width100">
<tbody>
<tr>
<td valign="top" class="label" style="width:50%">
<span style="background-color: yellow">Поставщик: Test test</span><br />
<span style="background-color: yellow">ФЛП Тест Т.Т.</span><br />
<span style="background-color: yellow">г. Киев, ул. Крещатик, 1</span><br />
<span style="background-color: yellow">тел.: (011)777-77-77</span><br />
</td>
<td valign="top" class="label">
{# Данные клиента подтягиваются из CRM автоматически #}
Получатель: {{ model.client_name }}<br />
тел.: {{ model.client_phone | default('не указано') }}<br />
{# Email выводится только если он заполнен в заказе #}
{% if model.client_email %}
email: {{ model.client_email }}
{% endif %}
</td>
</tr>
</tbody>
</table>
<br />
{# ======================================================= #}
{# БЛОК: НАЗВАНИЕ ДОКУМЕНТА — номер и дата заказа #}
{# Массив месяцев для вывода даты словами ("15 мая") #}
{# ======================================================= #}
{% set mnths = ['','января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'] %}
<p class="big-text text-center" style="margin-bottom: 10px">
Товарный чек №{{ model.id }} от {{ model.created_at|date("j") }} {{ mnths[model.created_at|date("n")] }} {{ model.created_at|date("Y") }} г.
</p>
{# ======================================================= #}
{# БЛОК: ТАБЛИЦА ТОВАРОВ #}
{# thead автоматически повторяется на каждой странице #}
{# (CSS: display:table-header-group) #}
{# Строки товаров не разрываются между страницами #}
{# (CSS: page-break-inside:avoid на tbody tr) #}
{# ======================================================= #}
<table class="width100 border">
<thead>
<tr>
<th class="text-center">№</th>
<th>Артикул</th>
<th class="name-col">Наименование товара</th>
<th>Ед.</th>
<th>Количество</th>
<th>Цена</th>
<th>Сумма</th>
</tr>
</thead>
<tbody>
{# Строки товаров — перебираем все позиции заказа #}
{% for key, product in model.products %}
<tr>
<td class="text-center">{{ key + 1 }}</td>
<td class="text-center">{{ product.product_sku }}</td>
<td style="width:50%">{{ product.product_name }}</td>
<td class="text-center">{{ product.product_unit_type }}</td>
<td class="text-center">{{ product.product_quantity }}</td>
<td class="text-center">{{ product.price_sold|format_currency('UAH', locale='uk') }}</td>
<td class="text-right">{{ (product.product_quantity * product.price_sold)|format_currency('UAH', locale='uk') }}</td>
</tr>
{% endfor %}
{# ======================================================= #}
{# ИТОГИ — выводятся после всех строк товаров #}
{# ======================================================= #}
{# "Всего за товары" — только если есть скидка или доставка #}
{% if model.discount_amount or model.shipping_price %}
<tr>
<td colspan="6" class="text-right">Всего за товары:</td>
<td class="text-right">{{ model.total_price|format_currency('UAH', locale='uk') }}</td>
</tr>
{% endif %}
{# Скидка на заказ — только если есть #}
{% if model.discount_amount %}
<tr>
<td colspan="6" class="text-right">Скидка:</td>
<td class="text-right">{{ model.discount_amount|format_currency('UAH', locale='uk') }}</td>
</tr>
{% endif %}
{# Доставка — только если есть #}
{% if model.shipping_price %}
<tr>
<td colspan="6" class="text-right">Доставка:</td>
<td class="text-right">{{ model.shipping_price|format_currency('UAH', locale='uk') }}</td>
</tr>
{% endif %}
{# Итоговая сумма — отображается всегда #}
<tr>
<td colspan="6" class="text-right"><strong>Итого:</strong></td>
<td class="text-right"><strong>{{ model.grand_total|format_currency('UAH', locale='uk') }}</strong></td>
</tr>
</tbody>
</table>
{# ======================================================= #}
{# БЛОК: ПОДВАЛ — общее количество, сумма и подпись #}
{# ======================================================= #}
<br /><br />
<table class="table-sum width100">
<tr>
<td colspan="2">
Всего наименований {{ model.products|length }}, на сумму {{ model.grand_total|format_currency('UAH', locale='uk') }}
</td>
<td></td>
</tr>
<tr>
<td>Дата: <span class="label underline">{{ model.created_at|date("j") }} {{ mnths[model.created_at|date("n")] }} {{ model.created_at|date("Y") }} г.</span></td>
<td>Подпись поставщика: ____________________</td>
<td></td>
</tr>
</table>
</div>
</body>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
height: 100%;
}
body {
font-size: 16px;
line-height: 1.3;
min-width: 320px;
font-family: sans-serif;
overflow-x: hidden;
}
.container {
margin-right: auto;
margin-left: auto;
}
.text-center {
text-align: center;
}
.text-right {
text-align: right;
}
.label {
font-weight: bold;
}
.underline {
text-decoration: underline;
font-style: italic;
}
.big-text {
font-size: 18px;
}
.width100 {
width: calc(100% - 2px);
}
table {
border-collapse: collapse;
border-spacing: 0;
height: auto;
}
table td {
padding: 5px;
}
table th {
background: #d4d4d4;
}
/* Границы для таблицы товаров */
table.border thead th,
table.border thead td,
table.border tbody td {
border: 1px solid black;
}
table.border th {
padding: 20px 5px;
}
table.border td {
padding: 5px;
}
table.table-sum {
margin-top: 7px;
}
table.table-sum td {
padding: 3px 5px 3px 15px;
}
/* =============================================
РАЗБИЕНИЕ НА СТРАНИЦЫ
============================================= */
/* Заголовок таблицы повторяется на каждой странице */
table.border thead {
display: table-header-group;
}
/* Строки tbody не разрываются между страницами */
table.border tbody tr {
page-break-inside: avoid;
break-inside: avoid;
}
/* Подвал держим вместе, не отрывать от итогов */
table.table-sum {
page-break-inside: avoid;
break-inside: avoid;
}
</style>
</html>2. Товарный чек 2

Тип шаблона: Заказы. QR-коды можно сгенерировать, например, здесь: https://www.qrcode-monkey.com/.
После создания нужно сохранить картинки на вашем сервере (сайте) и вставить в шаблон ссылки на них.
3. Расходная накладная

Тип шаблона: Заказы
4. Счет на оплату

Тип шаблона: Заказы.
5. "Письмо на таможню" (при отправке за границу)

Тип шаблона: Доставка
6. Proforma Invoice для отправки зарубеж (таможенный инвойс)

Тип шаблона: Доставка
Last updated