На цій сторінці
Довідники передають на пристрій товари, клієнтів і пов'язані з ними дані. Для кожної таблиці облікова система готує окремий XML-файл у outbox. Загальний формат описано на сторінці XML-таблиці.
Спільні поля довідників
ref_products і ref_customers мають такі обов'язкові поля:
| Поле | Тип | Призначення |
|---|---|---|
code | TEXT KEY | Сталий код товару, клієнта або групи. Унікальний у межах довідника. |
name | TEXT | Назва на екрані. |
parent | TEXT KEY | Код батьківської групи; порожнє значення для верхнього рівня. |
group | INTEGER | 0 — елемент, ненульове значення — група. У прикладах для груп використовується 1. |
Код у parent має посилатися на групу того самого довідника. Не використовуйте 0 замість порожнього батьківського коду: це посилання на групу з кодом 0.
Товари — ref_products
До спільних полів потрібно додати packaging і хоча б одне поле ціни з префіксом price_.
| Поле | Тип | Призначення |
|---|---|---|
packaging | REAL | Кількість базових одиниць у фасовці. Для поштучного товару — 1. |
price_… | REAL | Ціна категорії, код якої стоїть після price_: наприклад, price_Retail. |
rest | REAL | Залишок товару. Додайте, якщо він має відображатися або використовуватися у фільтрі залишків. |
measure_unit | TEXT | Одиниця виміру. Необов'язкове поле. |
weight | REAL | Вага базової одиниці товару для розрахунку ваги замовлення. Необов'язкове поле. |
color | INTEGER | Колір тексту запису. Необов'язкове поле. |
У прикладі є група G-001 та товар P-001 усередині неї:
<?xml version="1.0" encoding="utf-8"?>
<table name="ref_products">
<schema>
<field name="code" type="TEXT KEY"/>
<field name="name" type="TEXT"/>
<field name="parent" type="TEXT KEY"/>
<field name="group" type="INTEGER"/>
<field name="packaging" type="REAL"/>
<field name="price_Retail" type="REAL"/>
<field name="rest" type="REAL"/>
<field name="measure_unit" type="TEXT"/>
</schema>
<data>
<record>
<f>G-001</f>
<f>Напої</f>
<f/>
<f>1</f>
<f>1</f>
<f>0</f>
<f>0</f>
<f/>
</record>
<record>
<f>P-001</f>
<f>Вода 1 л</f>
<f>G-001</f>
<f>0</f>
<f>6</f>
<f>42.5</f>
<f>120</f>
<f>шт.</f>
</record>
</data>
</table>
У списку категорій цін для цього прикладу використовуйте value="Retail". Зберігайте однакові коди категорій у vl_cat_prices, полях price_… і налаштуваннях клієнтів.
Клієнти — ref_customers
Окрім спільних полів, можна передати:
| Поле | Тип | Призначення |
|---|---|---|
cat_price | TEXT | Доступні клієнту коди категорій цін через кому: Retail,Wholesale. |
debt | REAL | Загальна заборгованість клієнта. |
expired_debt | REAL | Прострочена заборгованість. Використовується, зокрема, для заборони нових замовлень. |
photo_required | INTEGER | 1 — для клієнта потрібне фото, 0 — ні. Перевірка вмикається в налаштуваннях застосунку. |
color | INTEGER | Колір тексту запису. |
<?xml version="1.0" encoding="utf-8"?>
<table name="ref_customers">
<schema>
<field name="code" type="TEXT KEY"/>
<field name="name" type="TEXT"/>
<field name="parent" type="TEXT KEY"/>
<field name="group" type="INTEGER"/>
<field name="cat_price" type="TEXT"/>
<field name="debt" type="REAL"/>
</schema>
<data>
<record>
<f>C-001</f>
<f>ТОВ «Магазин»</f>
<f/>
<f>0</f>
<f>Retail</f>
<f>850</f>
</record>
</data>
</table>
Адресу, телефон та інші дані можна додавати окремими полями. Їхні назви й показ у таблиці можна налаштувати на пристрої в налаштуваннях колонок або через tables_columns.xml.
Індивідуальні ціни — customer_product_data
Таблиця задає індивідуальні ціни клієнтів на товари. Кожен запис пов'язує одного клієнта й один товар. Пара customer_code та product_code має бути унікальною.
| Поле | Тип | Призначення |
|---|---|---|
customer_code | TEXT KEY | Код із ref_customers.code. Обов'язкове поле. |
product_code | TEXT KEY | Код із ref_products.code. Обов'язкове поле. |
price | REAL | Індивідуальна ціна. Ненульове значення має пріоритет над ціною категорії. |
price_multiplier | REAL | Множник ціни категорії, якщо немає ненульової індивідуальної ціни. Наприклад, 0.95 для зменшення ціни на 5%. |
order_count | REAL | Довідкова кількість попереднього замовлення. |
preorder_count | REAL | Додаткове поле довідкової кількості, яке можна показати під час підбору. |
Необов'язкові поля додавайте лише тоді, коли вони потрібні. Якщо індивідуальна ціна порожня або дорівнює 0, застосунок використовує ненульовий price_multiplier, а за його відсутності — ціну категорії. Значення 0 у цих полях не задає безкоштовний товар.
<?xml version="1.0" encoding="utf-8"?>
<table name="customer_product_data">
<schema>
<field name="customer_code" type="TEXT KEY"/>
<field name="product_code" type="TEXT KEY"/>
<field name="price" type="REAL"/>
<field name="order_count" type="REAL"/>
</schema>
<data>
<record>
<f>C-001</f>
<f>P-001</f>
<f>40</f>
<f>12</f>
</record>
</data>
</table>
Маршрути — routes
Один запис задає відвідування клієнта. Таблиця повинна містити customer_code та хоча б одне поле розкладу: date або week_day.
| Поле | Тип | Призначення |
|---|---|---|
customer_code | TEXT KEY | Код із ref_customers.code. |
date | TEXT | Конкретна дата у форматі YYYY-MM-DD, наприклад 2026-11-05. |
week_day | INTEGER | День тижня: 1 — понеділок, …, 7 — неділя. |
trade_point_value | TEXT | Код торгової точки з vl_trade_points.value. Необов'язкове поле. |
Якщо у схемі є date, застосунок відбирає маршрут за ним; week_day у такому разі не використовується. Для щотижневого розкладу не додавайте поле date.
<?xml version="1.0" encoding="utf-8"?>
<table name="routes">
<schema>
<field name="customer_code" type="TEXT KEY"/>
<field name="week_day" type="INTEGER"/>
<field name="trade_point_value" type="TEXT"/>
</schema>
<data>
<record>
<f>C-001</f>
<f>1</f>
<f>TP-001</f>
</record>
<record>
<f>C-001</f>
<f>4</f>
<f>TP-002</f>
</record>
</data>
</table>
У прикладі відвідування заплановані на понеділок і четвер. Клієнт та торгові точки мають бути завантажені на той самий пристрій.
Перевірка зв'язків
Після обміну перевірте журнал на пристрої, а потім дані:
- групи відкриваються, а товари й клієнти розміщені на правильних рівнях;
- категорія ціни клієнта відповідає наявному полю
price_…; - індивідуальна ціна застосовується лише до потрібної пари клієнта й товару;
- маршрут показує клієнтів на вибрану дату та їхні торгові точки.
Усі ці таблиці вже перелічені у профілі Завантажити дані стандартного exchange.xml.
