JS-модули могут встраиваться в выделенные для этого точки интерфейса системы, добавляя свои элементы с дополнительной функциональностью.
Ниже указаны страницы системы, в которых доступны точки встраивания. Кликая по страницам, вы можете увидеть точки встраивания на этих страницах и доступные объекты с необходимыми данными.
В разных точках доступен разный набор данных. Данные реактивные, т.е. изменения применяются ко входным объектам при их изменении в интерфейсе (в частности в формах, например, форме заказа, форме клиента и т.п.). Некоторые поля мутабельные, то есть их можно изменять в JS-приложении и эти изменения применятся к форме. Такие поля в справочнике отмечены как readonly: false.
Для получения объекта из контекста и полей из объекта, используйте функции из @retailcrm/embed-ui/index.d.ts, например:
import {
useOrderCardContext,
useSettingsContext,
useField,
} from '@retailcrm/embed-ui'
const order = useOrderCardContext()
const address = useField(order, 'delivery.address')
const settings = useSettingsContext()
const locale = useField(settings, 'system.locale')
Карта target-ов
По ссылке можно визуально посмотреть, в каким местах располагаются target-ы, что представлены в справочнике.
Карта target-ов карточки заказа
Справочник target-ов и их context-ов
| ID | Описание |
|---|---|
| Страница клиента | |
| Страница с формой создания/редактирования заказа | |
| Страница с формой создания/редактирования заказа в чатах | |
| Просмотр обращения | |
| Форма создания/редактирования обращения |
Страница клиентаcustomer/card
| Таргеты | Расположение | Объекты | Коды пользовательских контекстов |
|---|---|---|---|
customer/card:phoneВиджет для элемента списка телефонов клиента | Сразу после номера телефона в списке | customer | |
customer/card:communications.afterВиджет для дополнения секции коммуникаций в левой колонке страницы клиента. | Сразу под краткой сводкой, в секции коммуникаций | customer | |
customer/card:inWork.beforeВиджет для элемента обращений | В начале блока "В работе" в карточке клиента | customer | |
customer/card:inWork.afterВиджет для элемента обращений | В конце блока "В работе" в карточке клиента | customer |
Страница с формой создания/редактирования заказаorder/card
| Таргеты | Расположение | Объекты | Коды пользовательских контекстов | Действия |
|---|---|---|---|---|
order/card:common.beforeВиджет для секции с основными данными | Начало секции, над полями ввода | order | ||
order/card:common.afterВиджет для секции с основными данными | Конец секции, под полями ввода | order | ||
order/card:customer.beforeВиджет для секции с данными клиента | Начало секции, над полями ввода | order | ||
order/card:customer.afterВиджет для секции с данными клиента | Конец секции, под полями ввода | order | ||
order/card:customer.emailВиджет для поля ввода email клиента | Сразу после поля ввода | order | ||
order/card:customer.phoneВиджет для поля ввода телефона клиента | Сразу после поля ввода | order | ||
order/card:list.beforeВиджет для списка позиций заказа | Начало секции, над полями ввода | order | ||
order/card:list.afterВиджет для списка позиций заказа | Начало секции, под списком | order | ||
order/card:store.beforeВиджет для секции с данными склада | Начало секции, над полями ввода | order | ||
order/card:dimensions.beforeВиджет для секции с данными габаритов и веса | Начало секции, над полями ввода | order | ||
order/card:delivery.beforeВиджет для секции с данными доставки | Начало секции, над полями ввода | order | ||
order/card:delivery.afterВиджет для секции с данными доставки | Конец секции, под полями ввода | order | ||
order/card:delivery.addressВиджет для поля ввода адреса доставки | Под полем ввода адреса | order | ||
order/card:payment.beforeВиджет для секции с данными по оплате | Начало секции, над полями ввода | order | ||
order/card:comment.manager.beforeВиджет для блока "Комментарии оператора" | Начало секции, над полем ввода | order |
Страница с формой создания/редактирования заказа в чатахorder/mg
| Таргеты | Расположение | Объекты | Коды пользовательских контекстов | Действия |
|---|---|---|---|---|
order/mg:list.beforeВиджет для блока "Состав заказа" | Начало секции, над списком товарных позиций | order | ||
order/mg:list.afterВиджет для блока "Состав заказа" | Конец секции, сразу после списка товарных позиций и до полей ввода скидки, выбора привилегии и т.п. | order | ||
order/mg:delivery.beforeВиджет для блока "Доставка" | Начало секции, над полем ввода | order | ||
order/mg:delivery.afterВиджет для блока "Доставка" | Конец секции, под полями ввода | order | ||
order/mg:payment.beforeВиджет для блока "Оплата" | Начало секции, над полем ввода | order | ||
order/mg:payment.afterВиджет для блока "Оплата" | Конец секции, после списка оплат, контролов и пользовательских полей | order |
Просмотр обращенияticket/view
| Таргеты | Расположение | Объекты | Коды пользовательских контекстов | Действия |
|---|---|---|---|---|
ticket/view:header.afterДополнительные действия и информация, относящиеся ко всему обращению | Под общей шапкой и панелью действий обращения, перед переключателем вкладок | |||
ticket/view:common.beforeДополнительные действия и информация на вкладке «Основное» | В начале содержимого вкладки «Основное», перед блоком «Клиент» | |||
ticket/view:customer.afterДополнительная информация о клиенте обращения | Внутри блока «Клиент», после сегментов, в конце развёрнутого содержимого | |||
ticket/view:issues.afterДополнительная информация по вопросам обращения | Внутри общего блока вопросов, после содержания обращения и тегов |
Форма создания/редактирования обращенияticket/edit
| Таргеты | Расположение | Объекты | Коды пользовательских контекстов | Действия |
|---|---|---|---|---|
ticket/edit:common.beforeДополнительные действия и информация в форме обращения | В начале формы создания/редактирования обращения, перед полем «Магазин» | ticket | ||
ticket/edit:customer.afterДополнительные поля и информация о клиенте обращения | После всего блока «Клиент», включая поля контактного лица и компании, перед вопросами | ticket | ||
ticket/edit:issues.afterДополнительные поля и информация по вопросам обращения | После канала, содержания обращения и тегов в форме создания/редактирования обращения | ticket |
Объектcustomer/card
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
id | number|null | ID клиента | Да |
externalId | string | Внешний ID клиента | Да |
email | string | Email клиента | Да |
phones | Array<string> | Список телефонов клиента | Да |
Использование
import { useContext } from '@retailcrm/embed-ui-v1-contexts/remote/customer/card'
const customer = useContext()Объектcustomer/card:phone
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
value | string | Телефон клиента | Да |
index | number | Порядковый номер телефона в списке | Да |
Использование
import { useContext } from '@retailcrm/embed-ui-v1-contexts/remote/customer/card-phone'
const phone = useContext()Объектorder/card
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
id | number|null | Идентификатор заказа в CRM | Да |
externalId | string|null | Идентификатор заказа во внешней системе источника | Да |
type | string|null | Код типа заказа | Да |
site | string|null | Код магазина, к которому относится заказ | Да |
number | string|null | Отображаемый номер заказа | Да |
country | string|null | Символьный код страны | Да |
currency | string | Символьный код валюты | Да |
customer.id | number|null | ID клиента | Да |
customer.externalId | string|null | Внешний ID клиента | Да |
customer.type | "customer"|"customer_corporate" | Тип клиента | Да |
customer.lastName | string|null | Фамилия клиента | Нет |
customer.firstName | string|null | Имя клиента | Нет |
customer.patronymic | string|null | Отчество клиента | Нет |
customer.phone | string|null | Телефон клиента | Нет |
customer.email | string|null | Email клиента | Нет |
company.contragentType | "enterpreneur"|"legal-entity"|"individual" | Тип юридического лица | Да |
company.certificateNumber | string|null | Номер свидетельства | Нет |
company.certificateDate | string|null | Дата свидетельства | Нет |
company.OGRN | string|null | ОГРН контрагента | Нет |
company.OGRNIP | string|null | ОГРНИП | Нет |
company.name | string|null | Название компании | Нет |
company.legalName | string|null | Полное наименование компании | Нет |
company.legalAddress | string|null | Адрес регистрации компании | Нет |
company.INN | string|null | ИНН контрагента | Нет |
company.KPP | string|null | КПП контрагента | Нет |
company.OKPO | string|null | ОКПО контрагента | Нет |
company.BIK | string|null | БИК контрагента | Нет |
company.bank | string|null | Банк контрагента | Нет |
company.bankAddress | string|null | Адрес банка контрагента | Нет |
company.corrAccount | string|null | Корреспондентский счет контрагента | Нет |
company.bankAccount | string|null | Расчетный счет контрагента | Нет |
items | Array<> | Список товарных позиций заказа | Да |
delivery.address | string|null | Адрес доставки | Нет |
discount.amount | number | Размер одноразовой скидки в валюте заказа | Нет |
discount.percent | number | Процент одноразовой скидки | Нет |
discount.total | number | Общая скидка по заказу | Да |
status | string | Статус заказа | Да |
Использование
import { useContext } from '@retailcrm/embed-ui-v1-contexts/remote/order/card'
const order = useContext()Объектorder/card:settings
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
changePriceTypeByPriority | boolean | Изменять тип цены для товара в заказе, при изменении количества товара | Да |
changePriceTypeIfUnavailable | boolean | Изменять тип цены для товара в заказе, при изменении количества товара | Да |
defaultUnit | string|null | Единица измерения количества по-умолчанию | Да |
duplicatesAllowed | boolean | Возможность добавлять в заказ одинаковые торговые предложения как разные позиции | Да |
quantityIsFractional | boolean | Целое или дробное количество товара | Да |
priceEditable | boolean | Возможность редактировать цену товарных позиций | Да |
productsRemoveAllowed | boolean | Возможность удалять товарные позиции из заказа | Да |
productsMarkingEnabled | boolean | Возможность работы с маркированными товарами | Да |
propertiesToShow.additional | Array<string> | Дополнительные поля товаров, выводимые в списке товарных позиций | Да |
propertiesToShow.base | Array<string> | Базовые поля товаров, выводимые в списке товарных позиций | Да |
purchasePriceEditable | boolean | Возможность редактирования закупочных цен в списке товарных позиций | Да |
purchasePriceVisible | boolean | Отображать закупочные цены в списке товарных позиций | Да |
reserveDeliveryNoteEditable | boolean | Возможность редактирования номера накладной при бронировании товаров | Да |
reserveInvoiceEditable | boolean | Возможность редактирования номера счет-фактуры при бронировании товара | Да |
reserveShipmentDateEditable | boolean | Возможность редактирования даты отгрузки при бронировании товара | Да |
reserveTelephonyEnabled | boolean | Доступность телефонии при бронировании товара | Да |
showArticle | boolean | Отображать артикул | Да |
showPriceTypes | boolean | Работа с типами цен | Да |
useStores | boolean | Работа со складами | Да |
useReserve | boolean | Работа с бронированием | Да |
Использование
import { useContext } from '@retailcrm/embed-ui-v1-contexts/remote/order/card-settings'
const orderSettings = useContext()Объектsettings
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
image.workers | Array<string> | Список host-ов image preview workers для построения URL уменьшенных или обрезанных изображений. | Да |
system.locale | "en-GB"|"es-ES"|"ru-RU" | Текущая локаль системы | Да |
system.routing | RoutingData | Данные для js-маршрутизатора symfony | Да |
Использование
import { useContext } from '@retailcrm/embed-ui-v1-contexts/remote/settings'
const settings = useContext()Объектticket/edit
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
id | number|null | Идентификатор сохранённого обращения; null при создании | Да |
mode | "create"|"edit" | Режим редактора | Да |
site | |null | Магазин в черновике; хост разрешает ссылку и проверяет доступ | Нет |
number | string|null | Номер сохранённого обращения; null при создании | Да |
description | string | Описание обращения в черновике | Нет |
channel | |null | Канал в черновике; null снимает выбор | Нет |
customer.id | number|null | Идентификатор выбранного клиента; null при вводе нового | Да |
customer.type | "customer"|"customer_corporate" | Тип клиента; изменяется действием changeCustomerType | Да |
customer.name | string | Имя выбранного клиента; ввод названия разрешён только для нового корпоративного клиента | Нет |
customer.lastName | string | Фамилия нового физического лица; профиль выбранного клиента не редактируется | Нет |
customer.firstName | string | Имя нового физического лица; профиль выбранного клиента не редактируется | Нет |
customer.patronymic | string | Отчество нового физического лица; профиль выбранного клиента не редактируется | Нет |
customer.email | string | Email нового физического лица; профиль выбранного клиента не редактируется | Нет |
customer.phone | string | Телефон нового физического лица; профиль выбранного клиента не редактируется | Нет |
contact.id | number|null | Идентификатор выбранного контактного лица корпоративного клиента | Да |
contact.name | string | Имя выбранного контактного лица | Да |
contact.lastName | string | Фамилия нового контактного лица; ввод разрешён в корпоративном режиме без выбранного контакта | Нет |
contact.firstName | string | Имя нового контактного лица; ввод разрешён в корпоративном режиме без выбранного контакта | Нет |
contact.patronymic | string | Отчество нового контактного лица; ввод разрешён в корпоративном режиме без выбранного контакта | Нет |
contact.email | string | Email нового контактного лица; ввод разрешён в корпоративном режиме без выбранного контакта | Нет |
contact.phone | string | Телефон нового контактного лица; ввод разрешён в корпоративном режиме без выбранного контакта | Нет |
company.id | number|null | Идентификатор выбранной компании | Да |
company.name | string | Название компании; ввод разрешён только для новой компании корпоративного клиента | Нет |
issues | Array<> | Вопросы черновика; изменения адресуются по локальному ключу, а не индексу или nullable ID | Да |
orders | Array<> | Выбранные в черновике заказы; не результаты поиска | Да |
orderItems | Array<> | Выбранные позиции заказов; идентификаторы относятся к позициям заказов | Да |
dirty | boolean | В редакторе есть несохранённые изменения, включая вложенные разделы | Да |
valid | boolean | Черновик проходит локальную валидацию; не гарантирует права или успешное сохранение | Да |
loading | boolean | Редактор загружается | Да |
loadFailed | boolean | Ошибка загрузки редактора | Да |
saving | boolean | CRM сохраняет форму по действию пользователя | Да |
pending | boolean | Операция хоста блокирует конфликтующие изменения черновика | Да |
errors | Array<> | Опубликованные ошибки формы; чтение не запускает валидацию | Да |
Использование
import { useActions, useContext } from '@retailcrm/embed-ui-v1-contexts/remote/ticket/edit'
const ticket = useContext(); const actions = useActions()Объектticket/edit:settings
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
statuses | Array<> | Общий справочник активных статусов вопросов | Да |
types | Array<> | Общий справочник активных типов вопросов | Да |
topics | Array<> | Активные темы с их активными подтемами | Да |
channels | Array<> | Общий справочник активных каналов обращений | Да |
creatable | boolean | Пользователь имеет право создавать обращения; не признак корректности черновика | Да |
editable | boolean | Пользователь имеет право редактировать обращения | Да |
canCreateCustomer | boolean | Пользователь имеет право создавать физических лиц | Да |
canCreateCorporateCustomer | boolean | Пользователь имеет право создавать корпоративных клиентов и их новые контакты/компании в форме | Да |
Использование
import { useContext } from '@retailcrm/embed-ui-v1-contexts/remote/ticket/edit-settings'
const settings = useContext()Объектticket/view
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
id | number|null | Идентификатор обращения | Да |
site | |null | Магазин обращения | Да |
number | string|null | Номер обращения | Да |
description | string|null | Содержание обращения | Да |
channelName | string|null | Название канала обращения | Да |
customer.id | number|null | Идентификатор клиента; null, если клиент обращения не указан | Да |
customer.type | "customer"|"customer_corporate" | Тип клиента: customer или customer_corporate, как в order/card | Да |
customer.name | string|null | Отображаемое имя клиента | Да |
customer.email | string|null | Email клиента | Да |
customer.phones | Array<> | Телефоны, доступные текущему пользователю | Да |
customer.vip | boolean | VIP-клиент | Да |
customer.bad | boolean | Проблемный клиент | Да |
contact | |null | Контактное лицо обращения, отдельно от клиента | Да |
company | |null | Компания, выбранная в обращении, а не основная компания клиента | Да |
issues | Array<> | Вопросы обращения; статус и ответственный относятся к каждому вопросу | Да |
sla | |null | SLA обращения | Да |
canCreateEmail | boolean | Можно создать письмо для этого обращения через форму с учётом клиента, контактного лица и прав пользователя; доступность отправки проверяется отдельно | Да |
canCreateOrder | boolean | Можно открыть форму заказа для этого обращения с учётом типа клиента и прав пользователя | Да |
loading | boolean | Данные обращения загружаются | Да |
loadFailed | boolean | Загрузка завершилась ошибкой; ранее загруженные данные могут устареть | Да |
pending | boolean | Операция хоста блокирует конфликтующие действия | Да |
createdAt | string|null | Дата создания в формате ISO 8601 | Да |
Использование
import { useActions, useContext } from '@retailcrm/embed-ui-v1-contexts/remote/ticket/view'
const ticket = useContext(); const actions = useActions()Объектticket/view:settings
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
statuses | Array<> | Активные статусы вопросов из активных групп; общий справочник, а не переходы конкретного обращения | Да |
editable | boolean | Пользователь может редактировать обращения, менять статус и ответственного вопроса | Да |
commentable | boolean | Пользователь может добавлять комментарии к обращениям | Да |
Использование
import { useContext } from '@retailcrm/embed-ui-v1-contexts/remote/ticket/view-settings'
const settings = useContext()Объектuser/current
| Поле | Тип | Описание | Только для чтения |
|---|---|---|---|
id | number|null | ID пользователя | Да |
email | string | Email пользователя | Да |
firstName | string|null | Имя пользователя | Да |
lastName | string|null | Фамилия пользователя | Да |
patronymic | string|null | Отчество пользователя | Да |
photo | string|null | Фото пользователя | Да |
groups | Array<string> | Символьные коды групп, в которых состоит пользователь | Да |
permissions | Array<string> | Символьные коды доступных пользователю разрешений | Да |
isAdmin | boolean | Указывает, имеет ли пользователь права администратора | Да |
isManager | boolean | Указывает, имеет ли пользователь права менеджера | Да |
Использование
import { useContext } from '@retailcrm/embed-ui-v1-contexts/remote/user/current'
const user = useContext()Действияorder/card
| Действие | Аргументы | Возвращает |
|---|---|---|
createItemСоздает и добавляет новую товарную позицию в заказ | input:
| Promise<number> |
changeItemPriceИзменяет значение цены товарной позиции | index:
numberamount:
number | Promise<void> |
changeItemPriceTypeИзменяет значение типа цены товарной позиции, изменяет цену, если новый тип цены не пуст | index:
numbercode:
string|null | Promise<void> |
changeItemDiscountИзменяет значение скидки товарной позиции | index:
numberdiscount:
{ amount: number|undefined, percent: number|undefined } | Promise<void> |
changeItemQuantityИзменяет количество товарной позиции | index:
numberquantity:
number | Promise<void> |
changeItemStatusИзменяет статус товарной позиции по указанному идентификатору | index:
numberstatusCode:
string | Promise<void> |
removeItemУдаляет товарную позицию из заказа | index:
number | Promise<void> |
Действияticket/edit
| Действие | Аргументы | Возвращает |
|---|---|---|
changeCustomerTypeМеняет тип клиента в черновике и согласует поля клиента, контакта и компании | type:
"customer"|"customer_corporate" | Promise<void> |
selectCustomerВыбирает существующего клиента текущего типа; хост загружает доступные данные | customerId:
number | Promise<void> |
unlinkCustomerОткрепляет клиента по правилам формы; зависимые поля могут очищаться | Promise<void> | |
selectContactВыбирает существующее контактное лицо корпоративного клиента в черновике | contactId:
number | Promise<void> |
unlinkContactОткрепляет контактное лицо и очищает его профиль в черновике | Promise<void> | |
selectCompanyВыбирает существующую компанию корпоративного клиента в черновике | companyId:
number | Promise<void> |
unlinkCompanyОткрепляет компанию и очищает её название в черновике | Promise<void> | |
addIssueДобавляет вопрос с настройками формы по умолчанию и возвращает локальный ключ | Promise<string> | |
updateIssueЧастично меняет вопрос по локальному ключу; пропущенные поля сохраняются | key:
stringchanges:
| Promise<void> |
removeIssueУдаляет вопрос из черновика по локальному ключу | key:
string | Promise<void> |
addOrderДобавляет доступный существующий заказ в черновик без дубликатов | orderId:
number | Promise<void> |
removeOrderУбирает заказ и его выбранные позиции из черновика | orderId:
number | Promise<void> |
addOrderItemДобавляет доступную существующую позицию заказа в черновик без дубликатов | orderItemId:
number | Promise<void> |
removeOrderItemУбирает позицию заказа из черновика | orderItemId:
number | Promise<void> |
Действияticket/view
| Действие | Аргументы | Возвращает |
|---|---|---|
createCommentСоздаёт комментарий и возвращает идентификатор сохранённого комментария | text:
string | Promise<number> |
changeIssueResponsibleСохраняет ответственного пользователя или группу для вопроса | issueId:
numberresponsible:
| Promise<void> |
changeIssueStatusСохраняет статус вопроса и обновляет контекст после подтверждения | issueId:
numberstatusId:
number | Promise<void> |
openTicketEditorОткрывает редактор обращения в CRM | Promise<void> | |
openTicketHistoryОткрывает историю обращения в CRM | Promise<void> | |
openEmailEditorОткрывает форму письма с контекстом обращения; не отправляет письмо | Promise<void> | |
openOrderFormОткрывает форму нового заказа в шторке; CRM связывает заказ с обращением после сохранения | Promise<void> | |
refreshОбновляет опубликованные данные просмотрщика и ожидает завершения загрузки | Promise<void> |
ТипCreateOrderItemInput
| Поле | Тип | Описание |
|---|---|---|
productId | number | Идентификатор товара или услуги |
offerId | number | Идентификатор торгового предложения |
priceAmount | number | Значение цены в валюте заказа |
priceTypeCode | string | Символьный код типа цены |
quantity | number | Количество товарной позиции |
ТипDimensions
| Поле | Тип | Описание |
|---|---|---|
L | number|null | Длина |
W | number|null | Ширина |
H | number|null | Высота |
ТипDiscount
| Поле | Тип | Описание |
|---|---|---|
type | "bonus_charge"|"loyalty_event"|"loyalty_level"|"manual_order"|"manual_product"|"personal"|"round" | Тип скидки |
amount | number | Размер скидки |
ТипMoney
| Поле | Тип | Описание |
|---|---|---|
amount | number | Количество |
currency | string | Символьный код валюты |
ТипOffer
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
name | string | Наименование |
image | string|null | URL изображения |
dimensions | | Размеры товара L - длина, W - ширина, H - высота |
weight | |null | Вес |
article | string|null | Артикул |
barcode | string|null | Штрих-код |
properties | Array<> | Массив пользовательских свойств |
unit | string|null | Единица измерения количества, если не указана (null), будет указано "шт." |
purchasePrice | |null | Закупочная цена, значение + валюта |
ТипOrderItem
| Поле | Тип | Описание |
|---|---|---|
id | number|null | Идентификатор |
index | number | Временный идентификатор на время редактирования заказа |
type | "PRODUCT"|"SERVICE" | Тип товарной позиции - товар или услуга |
product | |null | Выбранный товар или услуга |
offer | |null | Торговое предложение для выбранного товара или услуги |
properties | Array<> | Массив пользовательских свойств |
quantity | number | Количество товарной позиции |
purchasePrice | |null | Закупочная цена, значение + валюта |
initialPrice | |null | Цена товара/SKU (в валюте объекта) |
priceType | |null | Тип цены |
bonusesChargeTotal | number | Количество списанных бонусов |
bonusesCreditTotal | number | Количество начисленных бонусов |
discounts | Array<> | Массив скидок, примененных к товарной позиции |
discountTotal | number | Итоговая денежная скидка на единицу товара c учетом всех скидок на товар и заказ (в валюте объекта) |
vatRate | "none"|number | `${number}` | Ставка НДС |
vatSum | number | Сумма НДС |
comment | string | Комментарий |
status | |null | Статус |
ТипOrderItemStatus
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
code | string | Символьный код |
name | string | Наименование |
isCancel | boolean | Отменяет ли статус товарную позицию |
ТипPriceType
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
code | string | Символьный код |
name | string | Наименование |
title | string | Заголовок |
default | boolean | Является ли тип типом цены по-умолчанию |
currency | string | Символьный код валюты (USD/EUR/...) |
ТипProduct
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
type | "PRODUCT"|"SERVICE" | Тип - товар или услуга |
name | string | Наименование |
image | string|null | URL изображения |
article | string|null | Артикул |
manufacturer | string|null | Наименование производителя |
markable | boolean | Необходимость маркировки |
groups | Array<> | Группы, в которые входит данный товар или услуга |
unit | string|null | Единица измерения количества, если не указана (null), будет указано "шт." |
url | string|null | Ссылка на страницу товара/услуги в магазине |
ТипProductGroup
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
name | string | Наименование |
ТипProperty
| Поле | Тип | Описание |
|---|---|---|
code | string | Символьный код |
name | string | Наименование |
value | string | Значение |
ТипTicketCompany
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
name | string | Название |
inn | string|null | ИНН или null |
kpp | string|null | КПП или null |
ТипTicketContact
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
name | string | Название |
email | string|null | Email или null |
phones | Array<> | Телефоны, доступные текущему пользователю |
ТипTicketEditorError
| Поле | Тип | Описание |
|---|---|---|
path | Array<string> | Сегменты публичного пути; пустой массив обозначает форму, ключ вопроса занимает один сегмент |
code | string|null | Код ограничения, если доступен |
message | string | Локализованное сообщение об ошибке формы |
ТипTicketEditorItem
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор позиции заказа; не товара или предложения |
orderId | number | Идентификатор заказа |
orderNumber | string | Номер заказа |
name | string | Название позиции |
article | string | Артикул позиции |
price | | Цена и валюта позиции |
image | string|null | URL изображения или null |
ТипTicketEditorOrder
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор заказа |
number | string | Номер заказа |
statusName | string|null | Отображаемое название статуса заказа, не код |
manager | string | Имя менеджера заказа |
total | | Сумма и валюта заказа |
createdAt | string | Дата создания в формате ISO 8601 |
ТипTicketEditorTopic
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор темы |
name | string | Название темы |
subtopics | Array<> | Подтемы, принадлежащие этой теме |
ТипTicketGroup
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
kind | "group" | Вид сущности |
name | string | Название |
ТипTicketIssue
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
type | |null | Тип вопроса |
topic | |null | Тема вопроса |
subtopic | |null | Подтема вопроса |
responsible | TicketResponsible|null | Ответственный пользователь или группа; TicketUser | TicketGroup |
status | |null | Статус вопроса |
sla | |null | SLA вопроса |
closedAt | string|null | Дата закрытия в формате ISO 8601 или null |
ТипTicketIssueDraft
| Поле | Тип | Описание |
|---|---|---|
id | number|null | Идентификатор сохранённого вопроса; null для нового |
key | string | Непрозрачный локальный ключ в пределах открытого редактора |
type | |null | Выбранный тип вопроса |
topic | |null | Родительская тема выбранной подтемы; определяется хостом |
subtopic | |null | Выбранная подтема |
responsible | TicketResponsible|null | Ответственный пользователь или группа |
status | |null | Выбранный статус вопроса |
sla | |null | Снимок сохранённого SLA; null не исключает предварительный расчёт для нового вопроса |
ТипTicketIssueDraftChanges
| Поле | Тип | Описание |
|---|---|---|
typeId | number|null | ID типа; отсутствие поля сохраняет выбор, null очищает |
subtopicId | number|null | ID подтемы; родительская тема определяется хостом |
responsible | |null | Ссылка на ответственного; отсутствие сохраняет, null очищает |
statusId | number|null | ID статуса; отсутствие сохраняет, null очищает |
ТипTicketPhone
| Поле | Тип | Описание |
|---|---|---|
number | string | Номер телефона |
numberCanonical | string|null | Канонический номер телефона или null |
ТипTicketReference
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
name | string | Название |
ТипTicketResponsibleInput
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
kind | "user"|"group" | Вид сущности |
ТипTicketSla
| Поле | Тип | Описание |
|---|---|---|
status | "normal"|"warning"|"urgent" | Состояние SLA: normal, warning или urgent |
duration | number | Длительность SLA в секундах |
remainingDuration | number|null | Оставшееся время SLA в секундах; null, если недоступно |
closedAt | string|null | Дата закрытия в формате ISO 8601 или null |
ТипTicketStatus
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
code | string | Символьный код |
name | string | Название |
group | | Группа статуса |
ТипTicketStatusGroup
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
code | string | Символьный код |
name | string | Название |
ТипTicketUser
| Поле | Тип | Описание |
|---|---|---|
id | number | Идентификатор |
kind | "user" | Вид сущности |
name | string | Название |
ТипWeight
| Поле | Тип | Описание |
|---|---|---|
value | number | Значение веса |
unit | 'grams'|'kilograms'|'tons' | Единица измерения |