Это старая версия документа.
Содержание
Описание формата данных для загрузки в Forecast NOW!
В программу можно загрузить несколько типов данных.
Минимально необходимые данные:
- История продаж, остатков, цен
Желательные данные:
Дополнительные:
Обычно параметры товаров задаются из интерфейса пользователя или рассчитываются системой автоматически. Аналоги и маркетинговые акции также могут быть заданы через графический интерфейс. Их загрузка из файла производится в том случае, если такая информация уже имеется в учетной системе.
Способы загрузки данных
Общие требования к формату
кодировка UTF-8 разделитель - ; (точка с запятой) не должен встречаться в значениях свойств, названиях свойств, названии и артикуле товара, а также других текстовых полях если значение не задано или не известно, то необходимо указать пропуск ; ; или ;0; для числовых значений.
Формат загрузки истории продаж
Данные от пользователя загружаются из текстового (csv) файла.
Формат кодировки файла – UTF-8.
Файл имеет заголовок следующего вида:
1.Код товара;2.артикул;3.название товара;4.склад;5.дата;6.кол-во продажи;7.прочий расход;8.кол-во поступления;9.в резерве;10.заказано;11.цена продажи;12.выручка;13.цена закупа;14.себестоимость;15.остаток;16. Упущенный спрос 17.клиент 18.невыполненный заказ 19.прибыль 20.учётная цена 21.товар в пути
Текст в столбцах заголовка и порядок столбцов в csv файле не фиксирован, может быть любой. Количество столбцов в заголовке должно совпадать с количеством столбцов в данных.
Формат строки файла следующий:
<1. Код товара - уникальный идентификатор>;<2. артикул товара>;<3. название товара>;<4. название склада или код склада>;<5. дата продажи или изменения остатка в формате «гггг-мм-дд»>;<6. кол-во единиц продажи суммированное за весь день>;<7. кол-во единиц прочего расхода (перемещения, списания, корректировки и пр.) за весь день>;<8. кол-во единиц поступления за весь день>;<9. количество товара в резерве на конец дня >;<10. количество товара в размещенных заказах поставщику на конец дня>;<11. цена продажи>;<12. сумма продажи= кол-во единиц продажи*цена продажи>;<13. цена закупочная>;<14. сумма закупочная=кол-во единиц продажи*цена закупочная>;<15. остаток товара на конец дня>;<16. упущенный спрос (в случае поклиентской детализации для каждого клиента грузится отдельно)>;<17. клиент, которому произошла продаж>;<18.невыполненный заказ>;<19.прибыль=Кол-во проданного * (Цена реализации - Закупочная цена)>;<20.учётная цена>;<21.товар в пути>
Жирным выделен минимальный набор необходимых данных при первоначальной загрузке.
Подчеркнутым дополнительно выделен желательный набор данных для работы различных анализов и оптимизации уровня сервиса, а также для проведения предварительного (предпроектного) исследования.
Курсивом обозначены поля, которые в настоящий момент не используются в системе. Поля зарезервированы для будущих версий и предназначены для контроля стокового уравнения (корректности выгрузки данных).
Таким образом, минимальный желательный формат:
<1. Код товара - уникальный идентификатор>;<3. название товара>;<4. название склада или код склада>;<5. дата продажи или изменения остатка в формате «гггг-мм-дд»>;<6. кол-во единиц продажи суммированное за весь день>;<10. количество товара в размещенных заказах поставщику на конец дня>;<11. цена продажи>;<13. цена закупочная>;<15. остаток товара на конец дня>
Если у вас всего один склад, то поле <4. Название склада> к выгрузке не обязательно.
В поле <4. название склада или код склада> можно загружать код склада, тогда потребуется загрузка справочника складов с сопоставлением имен складов и их кодов. Можно использовать название склада как код, тогда оно должно быть уникальным для разных складов.
Поле <9. количество товара в резерве на конец дня > предназначено для отражения зарезервированного товара под конкретного клиента или другие нужды. Показывает системе, что фактический остаток должен быть уменьшен на объем товара в резерве для получения свободного остатка.
Поле <10. количество товара в размещенных заказах на конец дня> отражает количество товара, которое уже размещено в заказе поставщику и/или находится в пути.
Поле <16. Упущенный спрос> выгружается в том случае, если имеется информация о точном размере упущенного спроса по товару за конкретный день
Поле <17. клиент, которому произошла продаж> выгружается только в том случае, если предполагается использование модуля маркетинговых акций в разрезе по клиентам (акция действует на конкретного клиента). В других случаях выгрузка этого поля нецелесообразна.
Все цифровые значения - положительные числа или ноль. В выгрузке не должно быть отрицательных остатков или отрицательных продаж и пр. Это не является критичным фактором, но может приводить к некорректной работы системы в некоторых случаях.
Выгружаются только товары, услуги и прочее не выгружается.
Разделитель целой и дробной части - точка.
Разделители разрядов отсутствуют. Верно 6000. 6 000 – неверно.
Строки разделяются между собой переносом строки.
Код товара, артикул, название не должны содержать символа “;”. Необходимо заменять все символы “;” на любой допустимый, например пробел.
Если код товара, артикул или название – пустая строка, то выгружать один пробел.
Цена продажи выгружается только в случае, если кол-во продажи больше нуля. Цена закупочная выгружается в случае, если была реализация и равна последней цене закупки. Также цена закупочная выгружается в случае, если было поступление и равна цене закупки в этом заказе.
Строка выгружается в следующих случаях:
- Была продажа
- Был прочий расход
- Было поступление
- Изменился остаток (перемещение, продажа и пр.), кол-во товара в пути (проведение документа, отмена проведения, приход товара и пр.), кол-во товара в заказе (размещение-закрытие заказа), кол-во товара в резерве (снятие резерва, открытие резерва),
Также выгружаются все строки на день – начало периода выгрузки и все строки на день – конец периода выгрузки вне зависимости от наличия продажи или изменения остатка.
Продажи должны отражать реальные факты продажи без перемещений товаров и прочих событий, не имеющих отношения к реальной продаже.
Необходимо проконтролировать, чтобы все товары имели различные уникальные идентификаторы, иначе поведение программы непредсказуемо.
От полноты и точности предоставляемых данных зависит точность прогноза и эффективность использования программы в целом.
Пример строк выгрузки
1.Код товара;2.артикул;3.название товара;4.склад;5.дата;6.кол-во продажи;7.прочий расход;8.кол-во поступления;9.в резерве;10.заказано;11.цена продажи;12.выручка;13.цена закупа;14.себестоимость;15.остаток;16. Упущенный спрос; 17.клиент;18.невыполненный заказ;19.прибыль;20.учётная цена;21.товар в пути 31051;AR132;Масло бочковое;Склад1;2010-08-01;4;0;1;2;4;63.5;254;15.0;60.0;16;0;Клиент1;0;194;60.0;3 69100;AR1334;Фильтр салона;Склад2;2010-08-01;13;0;0;0;6;36.7;477.1;10.0;130.0;15;Клиент2;0;347.1;130.0;2
Сопоставление полей
Сопоставление полей при загрузке в программу следующее (слева название в описании, справа при выборе полей в указании формата в графическом интерфейсе Forecast NOW!):
- уникальный идентификатор товара – Артикул
- артикул товара – Артикул (доп) (или Артикул, если первое - Пусто)
- название товара – Название
- название склада – Склад
- дата продажи или изменения остатка – Дата
- кол-во единиц продажи – Кол-во
- кол-во единиц прочего расхода – Пусто (зарезервировано для будущих версий)
- кол-во единиц поступления – Пусто(зарезервировано для будущих версий)
- количество товара в резерве – В резерве, ед.
- количество товара в размещенных заказах – Размещенный заказ, ед.
- цена продажи – Цена реализации
- сумма продажи – Выручка
- цена закупочная – Цена закупки
- сумма закупочная – Себестоимость
- остаток товара - Остаток
- упущенный спрос - Упущенный спрос
- клиент - Клиент
- невыполненный заказ - Невыполненный заказ
- прибыль - Прибыль
- учётная цена - Учётная цена
- товар в пути - Товар в пути
Частичная загрузка данных
Возможна частичная загрузка/обновление данных (не всех столбцов, которые были загружены первоначально - например, отдельная загрузка текущих остатков или товара в пути).
При частичном обновлении данных в файле загрузки могут присутствовать только данные по дате, коду товара и нужным столбцам, при загрузке файла нужно выбрать нужный формат и режим загрузки «Обновить частично» (при консольной загрузке флаг –partial)
Формат загрузки классификации
Товары можно разбивать по группам, например, «Молочные продукты», «Хлеб» или«Консервы». Каждая группа товаров обладает определённым набором свойств, например, у молочных продуктов есть жирность, у алкоголя крепость и литраж, кроме того у каждого товара есть название и поставщик. Одна группа товаров может быть подгруппой другой группы, например, «Вермишель» - это подгруппа группы «Макароны», а та в свою очередь подгруппа группы «Все товары». При этом все товары из группы «Вермишель» будут обладать свойствами группы «Макароны», так как «Вермишель» - это подгруппа группы «Макароны», и каждый товар из группы «Вермишель» это так же товар из группы «Макароны», но не наоборот.
Наличие свойств задается для групп, значения свойств задаются для конкретных товаров. Свойства наследуются в соответствии с иерархией.
Первая строка выгрузки иерархии (классификации) всегда одинаковая, так как любая группа товаров должна быть подгруппой «Все товары». «Все товары» является зарезервированным словом.
Все товары;это;группа
Группа определяется следующим образом:
<название группы>;это;группа
Иерархия задается с помощью ключевого слова имеетПодгруппу следующим образом (участвующие группы должны быть определены, как это указано выше):
<название группы1>;имеетПодгруппу;<название группы2>Наличие свойства у группы товаров задается с помощью ключевого слова имеетСвойство следующим образом:
<название группы>;имеетСвойство;<название свойства>
В csv файле подобную классификацию можно записать следующим образом
Все товары;это;группа Все товары;имеетСвойство;Название Все товары;имеетСвойство;Поставщик Алкоголь;это;группа Все товары;имеетПодгруппу;Алкоголь Алкоголь;имеетCвойство;Крепость Алкоголь;имеетCвойство;Литраж Пиво;это;группа Алкоголь;имеетПодгруппу;Пиво 400000000001;является;Алкоголь 400000000001;Название;Бурбон Four Roses 400000000001;Поставщик;Турис 400000000001;Крепость;43.00% 400000000001;Литраж;0.75л 400000000002;является;Алкоголь 400000000002;Название;Виски White Horse 400000000002;Поставщик;Склад#6 400000000002;Крепость;40.00% 400000000002;Литраж;0.75л 400000012345;является;Пиво 400000012345;Название;Pilsener 400000012345;Поставщик;DasBier 400000012345;Крепость;4.8% 400000012345;Литраж;1.0л
Формат файла для выгрузки/загрузки Параметров
В случае мультискладского учета внутри программы Forecast NOW!
<склад>;<артикул товара или другой уникальный идентификатор, совпадающий с идентификатором в выгрузке истории продаж>;<ключевое слово параметра>;<значение параметра>Пример
Склад1;1000034;Срок изготовления в днях;5 Склад1;1000035;Срок изготовления в днях;35 Склад1;1000036;Срок изготовления в днях;3 Склад1;1000037;Срок изготовления в днях;2 Склад1;1000034;Срок доставки в днях;7 Склад1;1000035;Срок доставки в днях;7 Склад1;1000036;Срок доставки в днях;7 Склад1;1000037;Срок доставки в днях;43
Формат файла с временными параметрами
<склад>;<артикул товара или другой уникальный идентификатор, совпадающий с идентификатором в выгрузке истории продаж>;<ключевое слово параметра>;<дата от>;<дата до>;<значение параметра>
Пример:
Склад №1;4000000000016;Расписание заказов;2020-01-01;2020-01-10;Каждую среду Склад №1;4000000000018;Расписание заказов;2020-01-01;2020-01-10;Каждую среду Склад №1;4000000000017;Расписание заказов;2020-01-01;2020-01-10;Каждую среду
Название параметров (ключевые слова)
Название параметров Основные
- Основной склад;4000000000067;Уровень сервиса I типа;95
- Основной склад;4000000000067;Использовать оптимальный УС;Да
- Основной склад;4000000000067;Срок годности, дней;20
- Основной склад;4000000000067;% срока годности, от поставщика;90
- Основной склад;4000000000067;% срока годности, клиенту;30
- Основной склад;4000000000067;Минимальное число дней продаж;3
- Основной склад;4000000000067;Актуальный период, дней;90
- Основной склад;4000000000067;Новый товар, дней;14
- Основной склад;4000000000067;Учитывать календарь;Да
- Основной склад;4000000000067;Учитывать продажи дочерних складов;2
- Основной склад;4000000000067;Способ доставки;Со склада
- Основной склад;4000000000067;Учитывать остаток родительского склада;Да
- Основной склад;4000000000067;Иерархия складов;Демо структура
- Основной склад;4000000000067;Зона хранения;1
Название параметров Особенности поставок
- Демо-склад1;4000000000016;Не заказывать товар;Да
- Демо-склад1;4000000000016;Минимальный запас, ед.;1
- Демо-склад1;4000000000016;Максимальный запас, ед.;2
- Демо-склад1;4000000000016;Добавлять к заказу, ед.;3
- Демо-склад1;4000000000016;Максимальный заказ, ед.;4
- Демо-склад1;4000000000016;Минимальная партия,ед.;5
- Демо-склад1;4000000000016;Кратность ,ед.;6
- Основной склад;4000000000016;Монтажная кратность;4
- Основной склад;4000000000021;Упаковка 1-го уровня;50
- Основной склад;4000000000021;Упаковка 2-го уровня;640
- Основной склад;4000000000021;Упаковка 3-го уровня;1500
- Основной склад;4000000000018;Вес упаковки 1-го уровня;2
- Основной склад;4000000000018;Вес упаковки 2-го уровня;3
- Основной склад;4000000000018;Объём упаковки 1-го уровня;4
- Основной склад;4000000000018;Объём упаковки 2-го уровня;5
- Основной склад;4000000000018;Округление;3
- Основной склад;4000000000018;Округление (Упаковка 2-го уровня);0.2
- Основной склад;4000000000028;Штраф за недопоставку, %;10
- Основной склад;4000000000018;Поставщик;34
- Основной склад;4000000000018;Изначальный запас;0
- Основной склад;4000000000016;Группа заказа;45А
«По правилам» - «0»
«Всегда вверх» - «1»
«Всегда вниз» - «2»
«По правилам, складская» - «3»
«Не установлено» - «4»
«Половина кратности, складская» - «6»
«По упаковкам» - «7»
Округления с десятичными порогам, загружаются со своим названием, округление 0.1 загружается, как 0.1
Название параметров Расписание поставок
- Демо-склад1;4000000000016;Расписание заказов;1 раз в неделю
- Демо-склад1;4000000000016;Срок доставки в днях;1
- Демо-склад1;4000000000016;Горизонт планирования;27
- Демо-склад1;4000000000016;Срок изготовления в днях;4
- Демо-склад1;4000000000016;Точка заказа, дней;3
- Демо-склад1;4000000000016;Дополнительный запас в днях;5
Название параметров Прогнозирование
- Основной склад;4000000000067;Восстанавливать спрос по остаткам;Да
- Основной склад;4000000000067;Фильтрация выбросов, %;2
- Основной склад;4000000000067;Порог дефицита, %;20
- Основной склад;4000000000067;Недостаточно данных, дней.;3
- Основной склад;4000000000067;Учитывать упущенный спрос;Да
- Основной склад;4000000000067;Анализируемый период, месяцев;12
Название параметров Сезонность
Демо-склад1;4000000000016;Нормировать сезонность;Нет Демо-склад1;4000000000016;Учитывать сезонность;Да
Название параметров балансировка
- Основной склад;4000000000016;Норма складского запаса, дней;7
- Основной склад;4000000000016;Не балансировать товар;Нет
- Основной склад;4000000000016;Округление (балансировка);0
- Основной склад;4000000000016;Минимальная партия (балансировка), ед.;0
- Основной склад;4000000000016;Кратность (балансировка), ед.;6
- Основной склад;4000000000016;Направление балансировки;Распределение с РЦ на филиалы
- Основной склад;4000000000018;Расписание заказов (балансировка);Каждую среду
- Основной склад;4000000000018;Точка заказа, дней (балансировка);4
Формат файла для выгрузки/загрузки Аналогов
Содержит информацию об аналогичных товарах. С помощью этого файла задаются главный и младшие аналоги. Главный аналог – товар, чей уникальный идентификатор следует первым в строке. При этом учитывается история продаж по всем аналогам, а остатки товаров-аналогов суммируются. При попытке добавления младшего аналога в Заказ или Анализ будет добавлен главный аналог. В файле обмена уникальный идентификатор товара-главного аналога идет первыми, уникальные идентификаторы младших аналогов отделяются символом ; (точка с запятой) Каждая группа аналогов находится в файле обмена на новой строке
4000000000021;4000000000030;4000000000032;4000000000035;4000000000034 4000000000016;4000000000020;4000000000019;4000000000018
или
4000000000021;4000000000030 4000000000021;4000000000032 4000000000021;4000000000035 4000000000021;4000000000034 4000000000016;4000000000020 4000000000016;4000000000019 4000000000016;4000000000018
допустимо смешивание видов записей
4000000000021;4000000000030 4000000000021;4000000000032 4000000000021;4000000000035 4000000000021;4000000000034 4000000000016;4000000000020;4000000000019;4000000000018
Формат файла для обмена данными по акциям
Загружать акции можно в двух форматах:
- файл с указанием заголовка, соответствующего представленным данным
- файл с указанием секций и команд используемых при загрузке данных.
При сохранение акций из программы используется формат с секциями и командами.
Формат файла с определением содержимого по заголовку
Данные от пользователя загружаются из csv файла. Формат кодировки файла – UTF-8.
Файл имеет заголовок следующего вида:
ИД;Название;Склад;Товар;Дата начала;Дата окончания;Клиент;Коэффициент товара;...
Обязательные поля для загрузки акций:
ИД - идентификатор акции
Название - название акции
Склад - код склада
Товар - код товара
Дата начала и Дата окончания - период действия акции в формате дд.мм.гггг или гггг-мм-дд
Поля могут располагаться в произвольном порядке. Информация представляется в порядке, соответствующем заголовку. Заголовок должен соответствовать представленным данным.
Заголовки можно указывать маленькими и большими буквами, без пробелов.
Пример содержимого файла:
ИД;Название;Склад;Товар;Дата начала;Дата окончания;Коэффициент акции;Заказать заранее за, дней 1;название1;склад1;товар1;10.12.2014;20.12.2014;0.4;7 1;название1;склад1;товар2;10.12.2014;20.12.2014;0.9;9 2;название3;склад3;товар1;12.12.2014;15.12.2014;0.5;12 3;название4;склад2;товар1;11.12.2014;20.12.2014;1.0;6
Формат файла с указанием секций и команд
Файл по обмену данных по акциям может содержать три секции (при создании новой акции обязательны первые две секции.
#campaigns - секция для добавления/удаления и указания полей акций, а также для добавления/удаления складов в акцию
#itemsCampaigns - секция для операция с товарами акции (добавление, удаление, но через команду ADD_ITM можно добавить склад вместе с кодом товара акцию, также через команду DEL_ITM можно удалить склад вместе с кодом товаром из акции.
Отдельные операции по добавлению/удаленияю складов ADD_WHS/DEL_WHS находятся в секции #campaigns)
#itemsCompareCampaigns - секция для операция с товарами для сравнения (добавления, удаление, но через команду ADD_ITM можно добавить склад вместе с кодом товара в акцию, также через команду DEL_ITM можно удалить склад вместе с кодом товаром из акции. Отдельные операции по добавлению/удаленияю складов ADD_WHS/DEL_WHS находятся в секции #campaigns)
Формат файла для обмена данными по акциям в разрезе клиентов. Если у вас нет складов, то вместо названия склада пишется пусто (отсутствие символов).
Команды акций
Секция #campaigns
Основными командами являются команды добавления и удаления акций, складов и клиентов
ADD_CMP
Добавление акции, перезаписывает всю старую информацию об акции с таким идентификатором. Указывается в секции #campaigns.
Пример:
ADD_CMP;<идентификатор акции>;<наименование акции>;<дата начала акции>;<дата окончания акции>;<коэффициент акции>;<категория акции>;-1[;<клиент1>;...;<клиентаN>]
DEL_CMP
Удаление акции,удаляет всю информацию об акции с указанным идентификатором. Указывается в секции #campaigns.
Пример:
DEL_CMP;<идентификатор акции>
ADD_CST
Добавление клиента к акции с указанным идентификатором. Указывается в секции #campaigns.
Пример:
ADD_CST;<идентификатор акции>;<клиент>
ADD_CALC_CST - аналогична ADD_CST, добавляет клиента для расчета
DEL_CST
Удаление клиента из акции с указанным идентификатором. Указывается в секции #campaigns.
Пример:
DEL_CST;<идентификатор акции>;<клиент>
DEL_CALC_CST - аналогична DEL_CST, только удаляет клиента для расчета
ADD_WHS
Добавление склада в акцию. Указывается в секции #campaigns Пример:
ADD_WHS;<Код склада>;<идентификатор акции>
DEL_WHS
Удаление склада из акции. Указывается в секции #campaigns Пример:
DEL_WHS;<Код склада>;<идентификатор акции>
SET_CMP_PARAMS
Установка дополнительных параметров акции, хранящихся в JSON формате. Например, заказ товар под акцию заранее (через «inAdvanceOrderedDays»: значение Указывается в секции #campaigns. Синтакис:
SET_CMP_PARAMS;идентификатор акции;{"параметр акции":"значение","параметр2 акции":"значение"}
Пример
SET_CMP_PARAMS;3;{"campaignType":"COEF","coefStatus":"MANUAL","inAdvanceOrderedDays":5,:26","userFields":{}}
SET_CMP_DEFICIT Команда предназначена для установки процента дефицита для акции с указанным идентификатором. Указывается в секции #campaigns.
Пример:
SET_CMP_DEFICIT;<идентификатор акции>;<процент дефицита акции>
SET_CMP_COMMENT Команда предназначена для установки комментария для акции с указанным идентификатором. Указывается в секции #campaigns.
Пример:
SET_CMP_COMMENT;<идентификатор акции>;<комментарий>
SET_CMP_TYPE Команда предназначена для установки типа акции с указанным идентификатором. Указывается в секции #campaigns.
Пример:
SET_CMP_TYPE;<идентификатор акции>;<тип акции>
где <тип акции> может принимать значения: COEF - тип акции коэффициент AMOUNT - тип акции объем
SET_CMP_AMOUNT Команда для установки объёмов для акции с указанным идентификатором для тройки склад-товар-клиент на указанную дату. Так содержит комментарий для объёма. Указывается в секции #campaigns.
Пример:
SET_CMP_AMOUNT;<идентификатор акции>;<склад>;<товар>;<клиент>;<дата>;<объем>;<комментарий к объему>
<дата> - дата может быть в формате yyyy-MM-dd или dd.MM.yyyy
CLEAR_CMP_AMOUNT_DATA Команда для очистки объемов для акции с указанным идентификатором. Указывается в секции #campaigns.
Пример:
CLEAR_CMP_AMOUNT_DATA;<идентификатор акции>
SET_CMP_USER_FIELD Установка дополнительных полей. Указывается в секции #campaigns.
Пример:
SET_CMP_USER_FIELD;<идентификатор акции>;<название поля>;<значение поля>
SET_ITM_AMOUNT_INFO;<идентификатор акции>;<идентификатор склада>;<идентификатор товара>;<прогнозируемый объем>;<фактический объем>;<планируемый объем>
Команда для записи конкретным товарам реального, прогнозируемого и запланированного объема спроса
Секция #itemsCampaigns
ADD_ITM
Добавление товара и склада в акцию с указанным идентификатором. (если указано в секции #itemsCampaigns - то товар добавляется как Товар, участвующий в акции, если в секции #itemsCompareCampaigns - то товар добавляется, как товар для расчета (история их продаж будет учтена при прогнозировании коэффициента акции, однако сами товары для расчете не участвуют в акции))
Пример:
#itemsCampaigns ADD_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN> #itemsCompareCampaigns ADD_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN>
DEL_ITM
Удаление товара и склада из акцию с указанным идентификатором. (если указано в секции #itemsCampaigns - то товар удаляется из товаров для расчета, если в секции #itemsCompareCampaigns - то товар удаляется из товаров для сравнения)
Пример:
#itemsCampaigns DEL_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN> #itemsCompareCampaigns DEL_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN>
SET_ITM_COEF - установка коэффициента увеличения спроса для конкретного товара
SET_ITM_COEF;<идентификатор акции>;<склад>;<товар>;<клиент>;<коэффициент>;<глубина скидки>
или
SET_ITM_COEF;<идентификатор акции>;<склад>;<товар>;<клиент>;<коэффициент>;<глубина скидки>;<рассчитанный коэффициент>;<спрогнозированный коэффициент>;<процент дефицита>
команды могут быть расположены в секции« #itemsCampaigns» или «#itemsCompareCampaigns»
Команды выполняются последовательно. Акция должна объявляться до приписывания к ней клиентов либо уже существовать в базе.
Формат файла для обмена данными по акциям c клиентами
#campaigns ADD_CMP;<Номер акции>;<Название акции>;<Дата начала акции>;<Дата окончания акции>;<Коэффициент роста продаж, 1 - если неизвестен>;<Категория акции>;-1;<Название клиента1>;<Название клиента2>;…;<Название клиентаN> DEL_CMP;<Номер акции> ADD_CST;<Номер акции>;<Название клиента1>;<Название клиента2>;…;<Название клиентаN> DEL_CST;<Номер акции>;<Название клиента1>;<Название клиента2>;…;<Название клиентаN> #itemsCampaigns ADD_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN> DEL_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN> #itemsCompareCampaigns ADD_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN> DEL_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN>
Пример
#campaigns ADD_CMP;3;Акция 3;22.02.2015;24.02.2015;1.5;;-1;Клиент1 ADD_CMP;2;Акция 2;20.02.2015;22.02.2015;2;Категория1;-1;Клиент1;Клиент2 ADD_CMP;1;Акция 1;10.02.2015;13.02.2015;1.4;;-1;Клиент2 DEL_CMP;0 #itemsCampaigns ADD_ITM;Демо-склад1;4000000000021;3 ADD_ITM;Демо-склад1;4000000000016;3;1 ADD_ITM;Демо-склад1;4000000000018;1 DEL_ITM;Демо-склад1;4000000000017;1 #itemsCompareCampaigns ADD_ITM;Демо-склад1;4000000000021;3 ADD_ITM;Демо-склад1;4000000000016;3 DEL_ITM;Демо-склад1;4000000000018;1 DEL_ITM;Демо-склад1;4000000000017;1
Формат файла для обмена данными по акциям без клиентов.
#campaigns ADD_CMP;<Номер акции>;<Название акции>;<Дата начала акции>;<Дата окончания акции>;<Коэффициент роста продаж>;<Категория акции>;-1 DEL_CMP;<Номер акции> #itemsCampaigns ADD_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN> DEL_ITM;<Склад>;<Уникальный идентификатор товара>;<Номер акции1>;<Номер акции2>;…;<Номер акцииN>
Пример
#campaigns ADD_CMP;3;Акция 3;22.02.2015;24.02.2015;1.5;;-1 ADD_CMP;2;Акция 2;20.02.2015;22.02.2015;2;Категория1;-1 ADD_CMP;1;Акция 1;10.02.2015;13.02.2015;1.4;;-1 DEL_CMP;0 #itemsCampaigns ADD_ITM;Демо-склад1;4000000000021;3 ADD_ITM;Демо-склад1;4000000000016;3;1 ADD_ITM;Демо-склад1;4000000000018;1 DEL_ITM;Демо-склад1;4000000000017;1
Формат дат для загрузки акций
Поддерживаются следующие форматы дат при загрузке данных по акциям:
- Год-месяц-число (Соответствует ISO 8601 (ГОСТ ИСО 8601))
Пример. 2006-05-04
- число.месяц.Год (Соответствует ГОСТ Р 6.30-2003 (п. 3.11))
Пример. 04.05.2006
Формат файла для закупок клиентов
Закупки импортируются из файла с форматом «Склад;Артикул;Клиент;Дата;Объём»,
Клиент может быть пустым полем
Дата может иметь формат гггг-ММ-дд (например, 2017-01-01) или дд.мм.гггг (например, 01.01.2017)
Объём - число, возможно десятичное с разделителем долей через точку
Склад;Артикул;Клиент - тройка, для которой нужна закупка.
Дата - дата, в которую необходимо осуществить закупку.
Объём - объём закупки.
Пример файла
Склад1;Артикул1;;2017-01-01;100.5 Склад2;Артикул2;Клиент2;2017-12-31;9999
Формат файла комплектов
Файл комплектов, загружаемый через Данные или консольную утилиту должен иметь следующий формат:
Артикул комплекта;артикул компонента;количество компонента в комплекте
Пример:
4000000000018;40000000016;1 4000000000018;40000000015;4 4000000000018;40000000014;3
Комплект 4000000000018 состоит из 1 единицы 40000000016, 4 единиц 40000000015, 3 единиц 40000000014
Формат файла произвольных полей для таблицы заказа
В файле должно:
- Задано название произвольных полей и их тип
- Товарам с конкретного склада заданы значения этих полей
Сами поля и их тип задаются в следующем формате:
Имя_Поля_Товара;имеетТип;Тип
Имя_Поля_Товара - произвольное название поля
имеетТип - ключевое слово для задания типа, может быть написано в любом регистре
Тип - может иметь значение «Число» или «Строка», написанное а любом регистре. Если значение отлично от Число или строка, то программа будет воспринимать Тип поля как Строка.
От типа поля зависит сортировка.
Указание значения поля товара имеет вид «Склад;Артикул;Имя_поля_товара;Значение», где
Склад - склад товара
Артикул - уникальный идентификатор товара
Имя_поля_товара - имя поля товара, заданное ранее
Значение - значение поля товара
Пример файла произвольных полей для таблицы заказа
Важность товара по десятибалльной шкале;имеетТип;Число Топ;имеетТип;Строка Основной склад;4000000000016;Важность товара по десятибалльной шкале;9 Основной склад;4000000000016;Топ;да Основной склад;4000000000015;Важность товара по десятибалльной шкале;2 Основной склад;4000000000015;Топ;нет
Ожидаемые поступления с датами
Данные используются для использования алгоритма с учетом дат поступлений заказов
Дата ожидаемого прихода;склад; уникальный идентификатор;ID/название заказа;количество товара в пути
Пример
2017-01-01;Основной склад;4000000000016;заказ1;10 2017-01-02;Основной склад;4000000000016;заказ1;20 2017-01-03;Основной склад;4000000000016;заказ1;30
Остатки по партиям со сроками годности
Загрузка сроков годности по партиям товаров осуществляется из файла с форматом:
Дата;Склад;Артикул;Партия;Остаток;Резерв;Дата изготовления;Дата окончания срока годности
На 1 день для 1 товара можно загрузить несколько партий. В программе будет отображаться суммированный остаток за день.
При загрузке проходит проверка файла на количество токенов (;) в строке, корректность дат и чисел.
Пример
2019-02-28;Склад№1;106933526;18-07-18;90;0;2018-07-18;2020-07-17 2019-02-28;Склад№1;106933546;18-04-17;109;0;2017-04-18;2019-10-15 2019-02-28;Склад№1;106933311;11-12-18;22;0;2018-12-11;2020-11-30 2019-02-28;Склад№2;106933311;06-02-19;1104;0;2019-02-06;2021-01-26 2019-02-28;Склад№2;106933311;06-02-19;1440;0;2019-02-06;2021-01-26
Структура подчиненности складов
Файл имеет формат csv, в котором один столбец - с данными в формате json Каждая строка - это отдельная структура подчиненности.
Структура файла и json полей
1. Указание родительских и подчиненных складов и виртуальности:
"edges":[{"from":"код родительского склада", "to":"код подчиненного склада1", "isVirtual":false}, {…}, {from":"код родительского склада", "to":"код подчиненного склада2", "isVirtual":true}]
- «from»:«код родительского склада» – родительский склад иерархии
- «to»:«код подчиненного склада1» – подчиненный склад иерархии
- «isVirtual»:true или «isVirtual»:false – является ли подчиненный склад виртуальным (не обязательное поле, по умолчанию подчиненный склад не является виртуальным
«from», «to» и «isVirtual» заполняется для каждой пары родительский склад-подчиненный склад, пары разделяются между собой при помощи ,
2. Указание прочих атрибутов структуры складов
«name»:« название структуры» – название структуры
«storages»:[«код склада1»,«код склада2», <…>«код склада 3»] – склады, находящиеся в структуре
«user»:«имя пользователя» – владелец структуры складов, необязательное поле
Пример файла
{"edges":[{"from":"Основной склад","to":"Склад №3"},{"from":"Основной склад","to":"Склад №1","isVirtual":true},{"from":"Основной склад","to":"Склад №2"}],"name":"Структура","storages":["Склад №3","Основной склад","Склад №1","Склад №2"]}
Файл соответствует следующей структуре:
Ошибки загрузки
При загрузке файлов проверяется: При валидации файла иерархий складов проверяются:
- Корректность структуры документа (критическая)
- Проверка на пустой список складов (предупреждение)
- Корректность значения 'Использовать параметры родительского склада' (критическая)
- Имя иерархии на пустоту (критическая)
- Имя иерархии на дубль (предупреждение)
Направления балансировки
Формат файла загрузки
Файл имеет формат csv, содержит список разрешенных направлений
<название направления балансировки>;<код склада донора>;<код склада реципиента>
Каждая строка файла – одна пара из склада-донора (откуда везется товар) и склада-реципиента (куда везется товар), в файле может быть несколько направлений балансировки с разными названиями.
Пример файла
Распределение;Основной склад;Склад №3 Распределение;Основной склад;Склад №2 Распределение;Основной склад;Склад №1 Сбор с филиалов на РЦ;Склад №3;Основной склад Сбор с филиалов на РЦ;Склад №2;Основной склад Сбор с филиалов на РЦ;Склад №1;Основной складСоздается 2 направления, в направлении «Распределение» разрешена перевозка товара с Основного склада по филиалам, в направлении «Сбор с филиалов на РЦ» разрешена перевозка товара с филиалов на основной склад.
Ошибки загрузки
При валидации файла направлений балансировки проверяются:
- Корректность структуры (критическая)
- Указание неизвестного склада (предупреждение)
Настройки балансировки
Файл содержит 2 раздела. Один отвечает за настройки балансировки, второй - за сроки и стоимость доставки. Если какой-то настройки нет в файле, останется значение по умолчанию, если настройка написана неправильно файл не загрузится и выведется соответствующее сообщение.
При указании настройки пишется ее имя, потом : , потом Да или Нет или значение настройки (если применимо).
При указании сроков и стоимости доставки пишется склад-склад:название параметра:значение параметра
Учитывать аналоги:Нет/Да Метод разворота аналогов:Сначала старые запасы, потом новые/Сначала дешевые, потом дорогие/По приоритету/Обратно приоритету Не учитывать разницу цен:Нет/Да Норма складского запаса равна Сроку поставки + Периодичность:Нет/Да Доход на высвобожденные средства, % в месяц:Значение Не перемещать товар, если последнее поступление было раньше, чем (дней):Значение Особенности поставки (кратность, мин. партия):Основные/Не учитывать/Бадансировка Иерархия складов:Основная/Балансировка Алгоритм балансировки:По рентабельности/Пропорциональное распределение остатка с РЦ Добавить к остатку склада-донора остаток:Нет/Да:Нет/Да Добавить к остатку склада-реципиента остаток:Нет/Да:Нет/Да Отображать все нулевые перемещения: /Варианты отображения нулевых перемещений через ";" Направление балансировки: /имя конкретного направления Cклад №1-Склад №2:стоимость доставки:0.00;период доставки:0.000000;стоимость доставки (за ед. веса):0.00;стоимость доставки (за ед. объёма):0.00;стоимость доставки (% от стоимости груза):0.00
Пример
Учитывать аналоги:Нет Разворачивать аналоги:Да Не учитывать разницу цен:Нет Норма складского запаса равна Сроку поставки + Периодичность:Нет Доход на высвобожденные средства, % в месяц:3 Не перемещать товар, если последнее поступление было раньше, чем (дней):0 Особенности поставки (кратность, мин. партия):Не учитывать Иерархия складов:Основная Алгоритм балансировки:Пропорциональное распределение остатка с РЦ Добавить к остатку склада-донора остаток:Нет:Да Добавить к остатку склада-реципиента остаток:Нет:Нет Отображать все нулевые перемещения:Отображать все Направление балансировки:Перемещение между филиалами Склад №1-Склад №2:стоимость доставки:7.00;период доставки:8.00 Склад №2-Склад №1:стоимость доставки:3.00;период доставки:6.00
Зоны хранения
Формат файла зон хранения
Название зоны хранения 1;стоимость хранения за ед.веса в зоне 1;стоимость хранения за ед.объема в зоне 1;вместимость, ед. веса в зоне1;вместимость, ед.объема в зоне1 Название зоны хранения 2;стоимость хранения за ед.веса в зоне 2;стоимость хранения за ед.объема в зоне 2;вместимость, ед. веса в зоне2;вместимость, ед.объема в зоне2
Дробная часть отделяется точкой
Ошибки загрузки
При валидации файла зон хранения проверяются:
- Корректность структуры документа (критическая)
- Имя зоны хранения на пустоту (предупреждение, зона с пустым именем не будет создана)
- Формат числовых данных (предупреждение)
Пример файла
Стеллажи;15;0;1500;10000 Склад;0;20;2000;3000
Расписание заказов
Формат файла расписания заказов
Имя_расписания_1;дата_заказа[#срок_доставки];....;дата_заказа[#срок_доставки] [#срок_доставки] - может не указываться ... Имя_расписания_2;дата_заказа[#срок_доставки];....;дата_заказа[#срок_доставки] [#срок_доставки] - может не указываться
Пример:
расписание1;15.06.2018;15.05.2018;15.02.2018;15.01.2018;15.12.2018;15.11.2018 расписание2;15.07.2018;15.01.2018;16.03.2018#2;16.01.2018#2;15.12.2018;23.01.2018#3
Сегменты клиентов
Формат файла сегментов клиентов
сегмент;клиент1;клиент2;...;клиентn
или
сегмент;клиент1 сегмент;клиент2 ... сегмент;клиентn
Правила автоустановки параметров
Формат файла автоустановки параметров
Загружать лучше правила автоустановки параметров, сохраненные из программы. При загрузке правил из файла происходит удаление всех ранее имеющихся правил и на их место записываются правила автоустановки из файла.
Пример файла автоустановки параметров
#parametersRuleTable Правило;{"analysis":[],"groups":{"name":"","values":["Конфеты","Зефир"]},"itemsFields":[],"parameters":[{"name":"ordersScheldule","values":["1 раз в месяц","2 раза в неделю"]}],"properties":[{"name":"Длина","values":["100","120","110"]},{"name":"Вес","values":["0.4","0.5"]}],"result":{"ConsiderWeeklySeasonalityFlag":1,"storageGraph":"Демо структура"},"storages":{"name":"","values":["Основной склад","Склад №1"]}} #parametersRuleTree ;folder;главная папка вложенная папка;item;Правило главная папка;folder;вложенная папка
Фильтры подготовки заказов
Фильтры подготовки заказов лучше создавать через интерфейс программы.
Загружать лучше фильтры подготовки заказов, сохранённые из программы.
Ограничения на внутренние перемещения
Формат
Код склада;параметр ограничения;значение Склад №1;Тип ограничения;Увеличить/уменьшить Склад №1;Критерии для выбора товаров;Критерий1, критерий 2 Склад №1;Упаковки;Упаковка 1 уровня;Значение Склад №1;Кратность упаковок;Упаковка 1 уровня;Значение
Разделитель целой и дробной части - .
Возможные значения
Тип ограничения:
- Увеличить
- Уменьшить
Критерии для выбора товаров:
- Оборачиваемость
- Плотность
- Прибыль
- Пользовательский
Упаковки и кратность упаковок:
- Упаковка 1 уровня
- Упаковка 2 уровня
- Упаковка 3 уровня
Для всех названий полей и текстовых значений необязательно соблюдать регистр
Пример
Склад №1;Вес;0.000000 Склад №1;Сумма;3000.000000 Склад №1;Объём;0.000000 Склад №1;Количество;0.000000 Склад №1;Процент округления фуры;0 Склад №1;Вместимость фуры(объём);0.000000 Склад №1;Вместимость фуры(вес);0.000000 Склад №1;Количество фур;0 Склад №1;Тип ограничения;Увеличить Склад №1;Фура;Фура 1 Склад №1;Критерии для выбора товаров;Оборачиваемость,Плотность Склад №1;Заказ не более чем на;0 Склад №1;Максимальное количество изменяемых строк;0 Склад №1;Упаковки;Упаковка 1 уровня;0 Склад №1;Кратность упаковок;Упаковка 1 уровня;0
Данные по клиентам
По умолчанию Наименование клиента и Код клиента одинаковые, они заполняются автоматически если загружается история продаж по клиентам, либо загружаются закупки под клиентов.
Информацию по клиентам и соответствие наименования клиента, коду клиента можно загрузить из файла соответствующего формата.
Формат файла загрузки
Файл состоит из секций:
#clients - коды и имена клиентов
#clientsProperties - свойства клиентов
#clientsAvailableStorages - доступные направления перемещения
#clientsRelationshipValues - сроки и стоимости доставки
Формат:
#clients код_клиента;имя ... #clientsProperties код_клиента;имя_свойства;значение_свойства ... #clientsAvailableStorages код_клиента;склад1;склад2;... ... #clientsRelationshipValues склад;код_клиента;стоимость доставки;число склад;код_клиента;период доставки;число склад;код_клиента;стоимость доставки (за ед. веса);число склад;код_клиента;стоимость доставки (за ед. объёма);число склад;код_клиента;стоимость доставки (% от стоимости груза);число ...
При загрузке происходит проверка файла на корректность данных.
Пример:
#clients Клиент 2;Клиент 2 Клиент 1;Клиент 1 #clientsProperties Клиент 2;Регион;Регион №1 Клиент 1;Регион;Регион №1 #clientsAvailableStorages Клиент 2;Склад №1;Склад №3 Клиент 1;Склад №2;Склад №1 #clientsRelationshipValues Склад №1;Клиент 2;стоимость доставки;0 Склад №1;Клиент 2;период доставки;0 Склад №3;Клиент 2;стоимость доставки;0 Склад №3;Клиент 2;период доставки;0 Склад №2;Клиент 1;стоимость доставки;0 Склад №2;Клиент 1;период доставки;0 Склад №1;Клиент 1;стоимость доставки;0 Склад №1;Клиент 1;период доставки;0