⚠️ Перенос технического домена <uid>.retailcrm.io → <uid>.rcrm-io.ruСо вторника 14 апреля 2026 г мы переносим технический адрес системы c <uid>.retailcrm.io на <uid>.rcrm-io.ru. При регистрации нового модуля в REST API registerUrl callback будет возвращать в register[systemUrl] адрес с новым доменом. Старый адрес останется доступным для обратной совместимости.
RetailCRM pro
@retailcrmpro
Официальный канал RetailCRM с техническими обновлениями.@retailcrm — наш основной канал. В нем мы постим кейсы, новые интеграции и полезные статьи.@retailCRMbot — отвечаем на вопросы, связанные с RetailCRM
Похожие каналы
Все →Последние посты
Добавлена переменная для расчета суммы покупок до следующего уровня лояльностиВ объект LoyaltyAccountInfo добавлена новая переменная requiredSumForNextLevel.Она возвращает сумму покупок, которой клиенту не хватает для перехода на следующий уровень программы лояльности.Переменную можно использовать вместо ручного расчета через разницу между порогом уровня и текущей суммой покупок клиента. Это упрощает настройку триггеров, валидаций и Twig-шаблонов и снижает риск ошибок при изменении порогов уровней.Пример в Twig:{{ customer.getLoyaltyAccountBySiteCode('siteCode').requiredSumForNextLevel }}Подробнее в документации
Изменения в API-методе расчёта максимальной скидкиДобавлена возможность рассчитывать максимальную скидку для ещё не созданного клиента с учётом уровня лояльности или события. Для этого в параметрах API-метода POST /api/v5/loyalty/calculate не нужно указывать поле order[customer].Если у магазина site, указанного в запросе, есть активная программа лояльности (ПЛ), то будут созданы виртуальный клиент и виртуальное участие. Участию начисляться welcome-бонусы и скидки по событиям в соответствии с настройками ПЛ. Бонусы по событию «День рождения» начисляться не будут. Если у магазина нет активной ПЛ, то запрос вернет соответствующую ошибку. Виртуальные участия не расходуют пакет участий в программах с расширенными возможностями.Изменения метода позволяют:- рассчитывать скидку по заказу для ещё не зарегистрированного в системе клиента с учётом бонусов за регистрацию;- видеть, какие бонусы или скидки ожидают нового клиента после оформления первого заказа.Подробнее в документации.
Номер заказа в API-методе получения статусов заказовВ API-методе GET /api/v5/orders/statuses наряду с полями id и externalId теперь отдается поле с номером заказа — number. Это позволит упростить идентификацию заказов в тех случаях, когда требуется получать именно их номера, без необходимости вызывать более тяжеловесный API-метод GET /api/v5/orders.Подробнее в документации.
Улучшения в безопасности и удобстве раздела API-ключиВ разделе API-ключи теперь:1. Значения API-ключей выводятся в маскированном виде. Исходное значение доступно только при создании API-ключа. Это снижает риск утечек API-ключей.2. Ключи можно искать фильтром по полю Комментарий3. В списке ключей теперь видно дату-время последнего использования. Дата-время старше 3 месяцев не хранится. Если она пустая, то либо ключ не использовался, либо использовался более 3 месяцев назад.
Фильтры по ID заказа, клиента, mg-клиента в api/v5/tasksВ API-методе GET /api/v5/tasks добавлены фильтры filter[orderId], filter[customerId], filter[mgCustomerId], позволяющие фильтровать задачи по ID заказа, клиента и клиента в MessageGateway, связанные с задачей.Подробнее в документации:• GET /api/v5/tasks
API-метод получения списка звонковДобавлен API-метод GET /api/v5/telephony/calls для получения списка звонков.Даный метод позволяет получить метаданные о звонке, такие как:- дата и время звонка,- длительность,- результат,- тип звонка,- теги,- транскрибацияи т.д.Пагинация производится по курсору - в ответе возвращается специальная метка (pagination[nextCursor]), значение которой нужно передать в параметр cursor следующего запроса.Запись звонка доступна для получения при помощи отдельного метода - GET /api/v5/telephony/calls/{id}/record.В качестве значения id используется внутренний идентификатор звонка.Подробнее в документации:- GET /api/v5/telephony/calls- GET /api/v5/telephony/calls/{id}/record
Возможность получения идентификатора клиента в контексте формы заказаВ JS-модулях теперь есть возможность получать внешний и внутренний идентификатор клиента, связанного с заказом.Для этого в объект order/card добавлены следующие поля:customer.idcustomer.externalIdПолный список доступных полей можно найти в документации#jsapi
Изменения в API-методе получения информации о программе лояльностиВ API-метод GET /api/v5/loyalty/loyalties/{id} добавили новое поле loyalty[events][] для описания событий программы лояльности.Подробнее в документации.
Маркировка ювелирных изделийДобавили возможность работать с маркировкой ГИИС ДМДК в REST API, в триггерах, в валидациях и в twig-шаблонах.В API-запросах создания товаров POST /api/v5/store/products/batch/create и редактирования товаров POST /api/v5/store/products/batch/edit, а так же в ответах запросов получения списка товаров GET /api/v5/store/products и списка торговых предложений GET /api/v5/store/offers добавлено поле markingProvider, а поле markable помечено устаревшим.В запросах получения списка заказов GET /api/v5/orders, получения заказа GET /api/v5/orders/{externalId}, создания заказа GET /api/v5/orders/create и редактирования заказа GET /api/v5/orders/{externalId}/edit также отмечены устаревшими поля orders[items][][markingCodes][] и order[items][][markingCodes][], вместо них надо теперь использовать orders[items][][markingObjects][] и order[items][][markingObjects][], соответственно. Каждый объект маркировки состоит из полей code и provider.В callback-запросах, которые CRM выполняет в адрес интеграционных решений по доставкам и оплатам, с точки зрения маркировки теперь следует ориентироваться на поля calculate[packages][][items][][markingObjects][] при расчете стоимости доставки и save[packages][][items][][markingObjects][] при сохранении доставки, а также на поле create[items][][markingObject] - при создании оплаты. Поля ...[items][][markingCodes] и ...[items][][markingCode] в этих запросах помечены устаревшими.В справочнике объектов, с которыми можно работать в триггерах, валидациях и twig-шаблонах, в типе OrderProduct добавили поле markingObjects вместо устаревшего markingCodes.Во всех устаревших полях с кодами маркировки будут и дальше приниматься и передаваться только коды маркировки системы Честный знак. Чтобы начать работать с маркировкой ювелирных изделий, надо перейти на использование полей markingProvider и markingObjects. Возможные значения провайдера маркировки - chestny_znak и giis_dmdk.
Дата-время последней активности пользователя в APIВ API-методах GET /api/v5/users и GET /api/v5/users/{id} добавлено поле user[lastOnline], где указана дата-время последней активности пользователя в системе. Если поле в ответе отсутствует, значит пользователь не был активен как минимум 1 месяц.Подробнее в документации:• GET /api/v5/users• GET /api/v5/users/{id}
Добавлен метод для более простого доступа к участию клиента в программе лояльностиВ объект Customer добавлен новый метод customer.loyaltyAccount. Его можно использовать вместо более сложного выражения customer.loyaltyAccountBySiteCode(customer.site.code). Поведение и возвращаемый объект LoyaltyAccount для обоих выражений идентичны.Подробнее в документации:https://docs.retailcrm.ru/Developers/Automation/ObjectReference/Customerhttps://docs.retailcrm.ru/Developers/Automation/ObjectReference/LoyaltyAccount

Точки встраивания в новой форме редактирования заказа в чатахВ разделе Чаты запущена новая версия виджета Заказы, в которой можно редактировать практически все данные заказа.В рамках заказа чата добавлены:* order/mg:list.before – перед списком товарных позиций* order/mg:list.after – после списка товарных позиций* order/mg:delivery.before – в начале секции доставки* order/mg:delivery.after – в конце секции доставки* order/mg:payment.before – в начале секции оплаты* order/mg:payment.after – в конце секции оплатыВ этих точках доступен контекст, который используется в точках встраивания карточки заказа order/card:*, так что расширения, написанные для карточки заказа должны работать корректно и в новых точках встраивания в чатах. Чтобы расширение заработало в новой точке, достаточно добавить цель встраивания в список доступных расширению целей.Отображение элементов в новом таргете добавлено в примере cases/allTargetsButton библиотеки примеров @retailcrm/core-ui-extensions-examples.Посмотреть доступные JS-модулям таргеты можно в справочнике.#jsapiТочки встраивания в новой форме редактирования заказа в чатахВ разделе Чаты запущена новая версия виджета Заказы, в которой можно редактировать практически все данные заказа.В рамках заказа чата добавлены:* order/mg:list.before – перед списком товарных позиций* order/mg:list.after – после списка товарных позиций* order/mg:delivery.before – в начале секции доставки* order/mg:delivery.after – в конце секции доставки* order/mg:payment.before – в начале секции оплаты* order/mg:payment.after – в конце секции оплатыВ этих точках доступен контекст, который используется в точках встраивания карточки заказа order/card:*, так что расширения, написанные для карточки заказа должны работать корректно и в новых точках встраивания в чатах. Чтобы расширение заработало в новой точке, достаточно добавить цель встраивания в список доступных расширению целей.Отображение элементов в новом таргете добавлено в примере cases/allTargetsButton библиотеки
Информация об упаковках интеграционной доставки заказа в справочнике объектовВ справочник объектов добавлены данные об упаковках интеграционной доставки в заказе - presentationPackages (order.integrationDeliveryData.presentationPackages).Содержит в себе список упаковок с указанием основных параметров (идентификатор, вес и габариты) и входящих в состав товаров из заказа.Теперь стал доступен, например, вывод информации о сформированных упаковках для печатных форм заказа.Пример в Twig (со всеми доступными полями):{% if order.integrationDeliveryData.presentationPackages %} {% for package in order.integrationDeliveryData.presentationPackages %} {{ package.packageId }} {{ package.weight }} {{ package.length }} {{ package.width }} {{ package.height }} {% for item in package.items %} {{ item.orderProduct.id }} / {{ item.orderProduct.externalId }} {% for externalIds in item.orderProduct.externalIds %} {{ externalIds.code }} - {{ externalIds.value }} {% endfor %} кол-во: {{ item.quantity }}шт {% endfor %} {% endfor %}{% endif %}
API-метод для импорта инвойсаДобавлен API-метод POST /api/v5/payment/invoice/import для передачи информации об уже завершенной интеграционной оплате в CRM.Подробнее в документации