Шаблон имеет строго определенную, но расширяемую структуру. Шаблон чека описан в формате JSON и имеет обязательные переменные.
Базовая структура шаблона чека:
{
"margin_left": 0,
"margin_right": 10,
"variables": {
"type_advance": "Avans"
},
"header":[ ],
"positions":[ ],
"position_totals":[ ],
"payments":[ ],
"footer":[ ]
}
Далее структура шаблона имеет следующие разделы:
Может содержать информацию о смене, кассире, кассе, дате продажи.
Пример раздела header:
"header": [
{
"text": "",
"font": "",
"interval": 10,
"img_src": "1",
"alignment": 1,
"img_width": 200,
"img_height": 159
},
{
"text": "<company.name> ",
"font": "Lucida Console, 8pt, style=bold",
"interval": -10,
"alignment": 1
}
]
В разделе доступны для использования следующие переменные:
В данном разделе можно использовать собственные переменные, которые передаются непосредственно в чеке. Наименование такой переменной задаётся по следующему формату:
custom.<name>, где name - это значение поля name в custom_variables
Если текстовый блок в данном разделе включает в себя следующие теги, то текстовое содержимое блока игнорируется и в блоке отображается указанное изображение:
Пример блока изображения:
{
"text" : "",
"font" : "",
"interval" : 30,
"alignment": 1,
"img_src":"\\Cheque\\regos.png",
"img_width":180,
"img_height":180
}
Если текстовый блок в данном разделе включает в себя следующие теги, то текстовое содержимое блока шифруется в указанный тип штрих-кода и отображается в блоке:
Пример блока штрих-кода:
{
"font" : "Lucida Console, 8pt",
"text" : "<doc.code>",
"barcode_height":50,
"barcode_module":2,
"barcode_show_text":false,
"barcode_type":1,
"interval" : 30,
"alignment": 1
}
Содержит информацию о списке номенклатуры, её количестве, цене.
Пример раздела positions:
"positions":[
{
"text": "<pos.n>. <pos.name> [<pos.unit>]",
"font": "Lucida Console, 7pt",
"interval": 15,
"alignment": 0
},
{
"text": "Sh.k: <pos.barcode>",
"font": "Lucida Console, 7pt",
"interval": 15,
"alignment": 0
}
]
В разделе доступны для использования следующие переменные:
Содержит информацию о итоговой сумме, сумме скидки.
Пример раздела position_totals:
"position_totals":[
{
"text": "<DF>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 1
},
{
"text": "Jami:<SF><pos.total_amount>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 0
}
]
В разделе доступны для использования следующие переменные:
Содержит информаци о списке оплат, сумме каждой оплаты и её типа.
Пример раздела payments:
"payments":[
{
"text": "<payment.type_name><SF><payment.value>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 0
}
]
В разделе доступны для использования следующие переменные:
Содержит дополнительную информацию.
Пример раздела footer:
"footer":[
{
"text": "FB:<doc.fiscal_sign>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 0
},
{
"text": "FM chek raqami:<doc.id>",
"font": "Lucida Console, 8pt",
"interval": -10,
"alignment": 0
}
]
В разделе доступны для использования те же переменные, что и в блоке header.