Акции

Акции используются для применения скидок на заказ по определенной схеме и при определенных условиях. Для просмотра акций, определенных в системе можно использовать API GET /api/discount.

Структура акции

Ключ

Тип

Описание

name

str

Название акции

description

str

Описание акции

repeat

int

Количество возможные применений акции в одном заказе

valid_from

Optional[datetime]

Дата начала действия акции

valid_until

Optional[datetime]

Дата окончания действия акции

type

DiscountType

Тип акции

conditions

List[DiscountCondition]

Список условий активация акции. Если пуст, то акция активна всегда

actions

List[DiscountAction]

Список действий акции

Условия акции

Условие акции - объект, определяемые ключем _cls, описывающим его тип, и дополнительным набором полей, зависящим от типа объекта.

TagsCondition

Условие активации по тегам клиента. Выполняется, если в заказе есть клиент, теги которого соответствуют тегам, определенным в условии с выбранным фильтром.

Ключ

Тип

Описание

tags

List[str]

Список требуемых тегов

filter

list_compare

Фильтр тегов

Фильтр тегов

Фильтр тегов имеет два возможных режима: all и any. В режиме all требуется, чтобы у клиента были все теги из списка требуемых, а в any - любой из перечисленных

BirthdayCondition

Условие активации по дню рождения клиента. Выполняется, если в заказе есть клиент и дата заказа находится в интервале от before_birthday дней до дня рождения и after_birthday дней после дня рождения клиента.

Ключ

Тип

Описание

before_birthday

int

Количество допустимых дней до дня рождения

after_birthday

int

Количество допустимых дней после дня рождения

OrderSumCondition

Условие активации по сумме заказа. В зависимости от фильтра имеет несколько разных режимов.

Ключ

Тип

Описание

value

int

Сумма заказа

filter

value_compare

Режим сравнения суммы заказа

OrderUnitCondition

Условие активации по точке, в которой выполняется продажа.

Ключ

Тип

Описание

units

List[ObjectId]

Список идентификаторов точке

filter

list_match

Режим фильтрации точки

ServicesInOrderCondition

Условие активации по наличию или отсутствию в заказе определенных услуг

Ключ

Тип

Описание

services

List[DiscountService]

Описание услуг и их опций

filter

list_match

Режим фильтрации услуги

ServiceCategoryInOrderCondition

Условие активации по наличию или отсутствую в заказе услуг из определенной категории

Ключ

Тип

Описание

services

List[DiscountCategory]

Описание категорий услуг

filter

list_match

Режим фильтрации услуги

OrderTimeCondition

Фильтр по времени выполнения заказа.

Предупреждение

Время выполнения учитывает временную зону франчайзи, которому принадлежит точка, на который выполняется продажа.

Ключ

Тип

Описание

begin

str

Время начала в формате „HHMM“

end

str

Время конца в формате „HHMM“

OrderDateCondition

Фильтр по дате выполнения заказа.

Предупреждение

Дата выполнения учитывает временную зону франчайзи, которому принадлежит точка, на который выполняется продажа.

Ключ

Тип

Описание

begin

datetime

Дата начала фильтрации

end

datetime

Дата конца фильтрации

SaleDayLimitCondition

Ограничивает количество позиций, на которые может быть применена акция в пределах одного дня. Не срабатывает для заказов без клиента.

Ключ

Тип

Описание

limit

int

Количество позиций в чеке в один день, на которые применяются действия акции.

Предупреждение

День ограничения определяется с учетом временной зоны франчайзи, которому принадлежит точка, на которой выполняется продажа.

Предупреждение

Количество позиций, на которые может быть применена акция, будет определятся с учетом ограничения и позиций в уже проведенных продажах.

PromoCondition

Определяет активацию акции по неуникальному промокоду.

Ключ

Тип

Описание

promo

List[str]

Список промокодов

prefix

bool

Флаг использования префикса

Если значение prefix равно true, то подходящим будет считаться любой промокод, начинающийся на любую строку из списка promo

UniquePromoCondition

Определяет активацию акции по уникальному промокоду. Не имеет дополнительных полей, работа с уникальными промокодами акции выполняется через отдельное API

Действия акции

Константы

Типы акций

Тип

Описание

unique_promo

Акция по уникальному промокоду

promo

Акция по неуникальному промокоду

simple

Обычная акция

Структуры данных

DiscountService

Ключ

Тип

Описание

id

ObjectId

Идентификатор услуги

options

List[UUID]

Требуемые опции услуги

count

int

Требуемое количество позиций

Примечание

Если список опций услуги пуст, то учитывается любая опция услуги.

DiscountCategory

Ключ

Тип

Описание

name

str

Название категории услуги

count

int

Требуемое количество позиций

Функции сравнения

list_match

Функция поиска элемента в списке

Значение

Описание

in

Элемент входит в список

not_in

Элемент не входит в список

list_compare

Функция сравнения двух списков

Значение

Описание

all

Все значение из списка-ключа есть в искомом списке

any

Хотя бы одно значение из списка-ключе есть в искомом списке

value_compare

Описывает оператор, по которому число сравнивается с требуемым значением

Значение

Оператор

eq

=

gte

>=

gt

>

lte

<=

lt

<