14.09.2020 12:59
Woaeiz
 
Доброго дня, коллеги!

Стало интересно, может ли FRONTOL6 провести акцию с механикой "за каждые 250 рублей - номенклатура в подарок".

Сначала добавил скидку на набор, 1шт - 100% скидка при условии, что сумма документа > 250р. В результате, вся номенклатура набора, после срабатывания условия, добавлялась в чек с 100% скидкой. Такая-же история с спец-ценой.

Пробовал обычную товарную скидку с условием в >250р - все последующие добавления позиции в чек не сбрасывают условие.

Немного подумав, решил удалить штрихкод у подарочной номенклатуры (чтобы её нельзя было добавить в чек) и изменил её цену на 0. Хочу написать скрипт(сценарий), который вызывался бы событием добавления и изменения товара в чеке и проверял бы условия, но не могу понять их документацию - с чего начать? Есть у кого опыт в этой теме?
14.09.2020 13:30
Woaeiz
 
Не пойму как прицепить конкретный скрипт к конкретному маркейтинговому событию. Использую FrontolManager 3.
Насколько я понял, в FM создаётся сценарий (и не один, но при инициализации подключается все сразу? ), где объявляется функция делающая магию и имя этой функции необходимо передать в вызов сценария на кассу? Имя вызываемой функции прописывается в конструкторе скидок? Тип какого значения должна вернуть функция в этом случае? Доступны ли для записи свойства объектов документа и позиции? Как вообще дебажить это корыто? :)
17.09.2020 01:14
Shift
 
Не совсем понятно, что имеется ввиду под "FrontolManager 3", если ведётся речь про Фронтол 6, то несколько комментариев могу высказать.
Цитата:
Насколько я понял, в FM создаётся сценарий
Да исходя из документации, а именно, "Руководство интегратора" подключается один сценарий (стр.104 - базовый пример использования обработчиков).

В данном случае, насколько я понимаю, никаких событий обрабатывать не требуется, а необходимо применить скидку из сценария по определенному алгоритму.
Если я верен в указанном выше утверждении, то необходимо в группе скидки добавить новую маркетинговую акцию.
Далее, в в ней добавить новое мероприятие с типом действия "автоматическая скидка из сценария", в которой указать на что будет распространяться скидка (чек либо позиция, процент либо сумма, ну и собственно название процедуры из скрипта).
В вашем случае, я бы сделал следующим образом:
1. Описал бы для себя, каким образом выглядит подарок (отдельная позиция товара, группа, классификатор и т.д.)
2. Добавил бы в сценарий по умолчанию функцию типа "disc(curPosition)", возвращающую нужное значение (для нужной позиции 0).
3. Внутри этой функции перебрал бы все позиции текущего документа
Код:
 for (     frontol.currentDocument.position.index = 1;
           frontol.currentDocument.position.index <= frontol.currentDocument.position.count;
           frontol.currentDocument.position.index++   )
{...}
Описание внутренних объектов есть в руководстве интегратора.
4. Ну и добавил бы маркетинговую акцию с мероприятием "автоматическая скидка из сценария" на позицию.
18.09.2020 05:43
Woaeiz
 
Цитата:
Shift Не совсем понятно, что имеется ввиду под "FrontolManager 3", если ведётся речь про Фронтол 6, то несколько комментариев могу высказать.

Да исходя из документации, а именно, "Руководство интегратора" подключается один сценарий (стр.104 - базовый пример использования обработчиков).

В данном случае, насколько я понимаю, никаких событий обрабатывать не требуется, а необходимо применить скидку из сценария по определенному алгоритму.
Если я верен в указанном выше утверждении, то необходимо в группе скидки добавить новую маркетинговую акцию.
Далее, в в ней добавить новое мероприятие с типом действия "автоматическая скидка из сценария", в которой указать на что будет распространяться скидка (чек либо позиция, процент либо сумма, ну и собственно название процедуры из скрипта).
В вашем случае, я бы сделал следующим образом:
1. Описал бы для себя, каким образом выглядит подарок (отдельная позиция товара, группа, классификатор и т.д.)
2. Добавил бы в сценарий по умолчанию функцию типа "disc(curPosition)", возвращающую нужное значение (для нужной позиции 0).
3. Внутри этой функции перебрал бы все позиции текущего документа
Код:
 for (     frontol.currentDocument.position.index = 1;
           frontol.currentDocument.position.index <= frontol.currentDocument.position.count;
           frontol.currentDocument.position.index++   )
{...}
Описание внутренних объектов есть в руководстве интегратора.
4. Ну и добавил бы маркетинговую акцию с мероприятием "автоматическая скидка из сценария" на позицию.
FrontolManager это синхронизатор узлов (касс). Атол снял их с продажи, но всё ещё поддерживает. Позволяет настроить кластерную сеть обмена данными, т.е. выгружаем мастер-данные в одну базу, а FM раскидывает её на другие (FM или кассы).

Т.е. создаю сценарий в одном FM и он появляется сразу на всех управляемых, ЭТИМ FM, кассах.

Если я сделаю автоматический вызов функции, когда условие маркейтинговой акции = true, тогда все последующие инициализации проверки условия акции будут всегда = true. В данном случае, сумма документа всегда будет > 250, а механика акции подразумевает вкусняшку за КАЖДЫЕ 250р. Т.е. маркер акции должен сбрасываться на = false, чтобы в промежутке от 250 до 500 он не добавил вкусняшку в чек.

Нашёл на кассе функцию проверки скрипта. Попробую сделать несколько разных способов.
Миниатюры
Нажмите на изображение для увеличения
Название: 20.png
Просмотров: 113
Размер:	146.0 Кб
ID:	11035  
18.09.2020 17:02
Shift
 
Цитата:
Если я сделаю автоматический вызов функции, когда условие маркейтинговой акции = true, тогда все последующие инициализации проверки условия акции будут всегда = true. В данном случае, сумма документа всегда будет > 250, а механика акции подразумевает вкусняшку за КАЖДЫЕ 250р. Т.е. маркер акции должен сбрасываться на = false, чтобы в промежутке от 250 до 500 он не добавил вкусняшку в чек.
Не надо никаких маркеров, внутри цикла перебираете все позиции текущего документа (там есть всё - количество, цена, сумма, скидки). Скидку всегда возвращать 0. Соответственно количество "вкусняшек" - это сумма документа за вычетом суммы "вкусняшек", деленная на 250 руб с нужным округлением. А дальше функцией addPosition добавляете нужное количество "вкусняшек" (за вычетом уже присутствующих в документе) чек по цене 0.
Конечно тут присутствует сложность, как отличить добавленную "вкусняшку" скидкой и ту, которую приобрёл сам покупатель (как вариант по сумме позиции). Ну и второй вопрос - может ли покупатель выбирать "вкусняшку".
Часовой пояс GMT +3, время: 18:25.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.