Товары
Структура
data class ProductFileClass(
var categories: List<Category>, //Список категорий
var labelTemplates: List<LabelTemplate>, //Список шаблонов этикетки
var messages: List<Message>, //Список сообщений (для состава или описания товара)
var productRates: List<ProductRate>, //Список рейтингов товаров
var products: List<Product>, //Список товаров
var lotsOfProduct: List<LotOfProduct> //Список партий товаров
)
data class Category(
val idCategory: Int, //ID категории
val name: String //Название категории
)
data class LabelTemplate(
val id: Int, //ID шаблона этикетки
val name: String?, //Название
val height: Int, //Высота
val deleted: Boolean //Признак удалёного элемента
)
data class Message(
val id: Int, //ID сообщения
val value: String, //Текст сообщения (для состава или описания товара)
val deleted: Boolean //Признак удалёного элемента
)
data class ProductRate(
val productCode : Int, //Код товара
val startDate : String, //Дата начала подсчёта рейтинга. Формат "DD-MM-YY"
val updateDate : String, //Дата последнего обновления рейтинга. Формат "DD-MM-YY"
val rate : Float //Рейтинг
)
data class LotOfProduct(
val id: Int, //ID партии товара
val productCode: Int, //Код товара
val manufactureDate: String?, //Дата производства
val shelfLifeDateTime: String?, //Дата и время срока годности
)
data class Product(
//Идентификаторы
val id: Int, //ID товара
val name: String, //Название
val code: Int = 0, //Код товара
val pluNumber: Int?, //ПЛУ товара
val buttonNumber: Int?, //Номер кнопки
val gtin: Int?, //GTIN
//Цены
val price: Double, //Цена
val discountPrice: Double?, //Цена со скидкой
//Датирование
val manufactureDate: String?, //Дата производства. Формат "DD-MM-YY"
val sellByDate: String?, //Дата срока годности. Формат "DD-MM-YY"
val shelfLife: Int?, //Срок годности
val shelfLifeType: String?, //Тип срока годности
//Характеристики
val productType: String, //Тип продукта
val pieceWeight: Double?, //Вес 1 штуки
val category: Int?, //ID категории
val message: Int?, //ID сообщения (для состава или описания товара)
val wrappingType: Int?, //Тип упаковки для ленты Мёбиуса
val rostestCode: String?, //Код РОСТЕСТа
val deleted: Boolean, //Признак удалёного элемента
//Этикетка
val labelTemplate: Int?, //Приоритетный шаблон этикетки
val labelDiscountTemplate: Int?, //Приоритетный шаблон этикетки, если указана цена со скидкой
//Штрихкоды
val barcodePrefixType: String?, //Приоритетный тип префикса штрихкода
val barcodeStructure: String?, //JSON приоритетных структур штрихкодов
//Взвешивание
val tare: Double?, //Тара
val minWeight: Double?, //Минимальный вес для печати этикетки
val maxWeight: Double?, //Максимальный вес для печати этикетки
//Распознавание
val learningModeEnabled: Boolean?, //Флаг дообучения товара.
)
Тип товара:
WEIGHT - весовой,
PIECE - штучный
Типы срока годности:
HOURS - в часах,
DAYS - в днях,
WEEKS - в неделях,
MONTHS - в месяцах,
YEARS - в годах,
NOT_LIMITED - не ограничено
Типы префикса штрихкода:
NUMBER_SCALES - номер весов,
GROUP_CODE - ID категории,
PRODUCT_TYPE - тип продукта
В переменную barcodeStructure заносится json-строка из списка элементов следующего типа
data class BarcodeJsonClasses(
val number: String, //Номер штрихкода
val structure: String, //Структура штрихкода
val type: Int?, //Тип штрихкода
)
Типы штрихкода:
3 - Code39
4 - Code93
5 - Code128
6 - DataMatrix
7 - EAN8
8 - EAN13
9 - ITF
12 - QR Code
15 - UPC A
16 - UPC E
17 - EAN13+5
18 - EAN128
Структура штрихкода строится по следующему шаблону: @{«1 ЭЛЕМЕНТ:ЗНАЧЕНИЕ}@{2 ЭЛЕМЕНТ:ЗНАЧЕНИЕ}…@{N ЭЛЕМЕНТ:ЗНАЧЕНИЕ}
Список элементов структуры:
PREFIX - Префикс штрихкода, в качестве значения указывается количество символов в ШК
CODE - Код товара, в качестве значения указывается количество символов в ШК
PLU - ПЛУ, в качестве значения указывается количество символов в ШК
QUANTITY - Вес/количество, в качестве значения указывается количество символов в ШК
TARE - Тара, в качестве значения указывается количество символов в ШК
PRICE - Цена, в качестве значения указывается количество символов в ШК
COST - Сумма, в качестве значения указывается количество символов в ШК
MANUFDATE - Дата производства, в качестве значения указывается формат даты
SHLDATE - Дата срока годности, в качестве значения указывается формат даты
WRAPTYPE - Тип упаковки, в качестве значения указывается количество символов в ШК
AI - Идентификатор применения, в качестве значения указывается произвольный текст
TEXT - Статический текст, в качестве значения указывается произвольный текст
CHECKSUM - Контрольная сумма, в качестве значения указывается тип ШК
GTIN - Уникальный номер товара, в качестве значения указывается количество символов в ШК
TOTAL_WEIGHT_OR_QUANTITY - Итоговый вес/Итоговое кол-во, в качестве значения указывается количество символов в ШК
TOTAL_WEIGHT - Итоговый вес, в качестве значения указывается количество символов в ШК
TOTAL_PACKAGES - Кол-во упаковок, в качестве значения указывается количество символов в ШК
Форматы дат:
DDMMYY
YYMMDD
MMDDYY
DDDYY
Типы ШК для контрольной суммы:
EAN_8
EAN_13
EAN_13_PLUS_5
UPC_A
UPC_E
ITF
Значения формата даты, статического текста и типа типа ШК записываются в угловых скобках:< >.
Примеры записи структуры ШК:
Примечание
@{CODE:7}@{QUANTITY:5}@{CHECKSUM:<EAN_13>} @{CODE:7}@{QUANTITY:5}@{CHECKSUM:<EAN_13>}@{SHLDATE:<DDDYY>} @{TEXT:<SomeText>}
Пример
{
"categories": [
{
"idCategory": 1,
"name": "Фрукты"
}
],
"labelTemplates": [
{
"deleted": false,
"height": 30,
"id": 1,
"name": "58x30, ШК",
"width": 58
}
],
"messages": [
{
"deleted": false,
"id": 1,
"value": "Строка 1\nСтрока 2\n\nСтрока 4"
}
],
"productRates": [
{
"idProduct": 2,
"rate": 1,
"startDate": "02-02-23",
"updateDate": "02-02-23"
}
],
"products": [
{
"id": "1",
"code": "1",
"buttonNumber": "1",
"name": "Пример\n",
"price": "24.000000",
"shelfLifeInDays": "40",
"tare": "0.100000",
"productType": "PIECE",
"deleted": "false",
"pluNumber": "1",
"labelTemplate": "11",
"barcodeStructure": "[{\"number\":\"1\",\"structure\":\"@{CODE:7}@{QUANTITY:5}@{CHECKSUM:<EAN_13>}\",\"type\":8},{\"number\":\"2\",\"structure\":\"@{TEXT:<ThisisaDataMatrix>}\",\"type\":6}]",
"pieceWeight": "0.200000",
"manufactureDate": "21-12-23",
"barcodePrefixType": "NUMBER_SCALES",
"sellByDate": "09-02-24",
"minWeight": "0.015000",
"maxWeight": "0.215000",
"discountPrice": "20.500000",
"labelDiscountTemplate": "1",
"wrappingType": "5",
"gtin": "647"
}
]
}