Чек-лист проверки перед активацией корпоративных клиентов
Скопировать ссылку на статью
Скопировано

Активация

По умолчанию работа с корпоративными клиентами активирована для всех клиентов, подключенных по соответствующим тарифным планам (профессиональный). Но те клиенты, которые на момент появления функциональности корпоративных клиентов в системе имели клиентов с заполненными юридическими или банковскими реквизитами, переводятся в режим совместимости, при котором работа с юридическими реквизитами клиентов осуществляется по старой схеме, а работа с корпоративными клиентами отключена. Таким клиентам нужно в ручном режиме активировать работу с корпоративными клиентами.

Важно!

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

Триггеры

В связи с изменениями структуры данных заказа (поле order.customer теперь может содержать как клиента, так и корпоративного клиента, а так же появление полей order.contact и order.company), необходимо проверить все триггеры на изменение данных заказа, которые так или иначе работают с данными клиента order.customer. Если триггер не должен срабатывать на заказы, оформленные на корпоративного клиента, тогда надо в условие триггера добавить проверку order.customer.typeCode == 'customer'. В противном случае нужно доработать триггер, учитывая что набор полей клиента и корпоративного клиента в order.customer разный.

Работа с корпоративными клиентами через API

Раннее для доступа к данным всех клиентов использовались только методы /api/v5/customers/*. Теперь же для работы с корпоративными клиентами нужно использовать методы /api/v5/customers-corporate/*. В версиях API ниже 5 нет возможности работать с корпоративными клиентами.

Каждый корпоративный клиент содержит в себе 3 набора объектов:

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

Создание корпоративного клиента

Перед созданием корпоративного клиента необходимо создать клиентов, которые будут его контактными лицами, используя методы /api/v5/customers/create или /api/v5/customers-corporate/upload.

Создать самого корпоративного клиента можно используя метод /api/v5/customers-corporate/create, либо /api/v5/customers-corporate/upload для пакетной выгрузки. Контактные лица указываются в поле customerCorporate[customerContacts]. Данные реквизитов необходимо передавать в полях компании customerCorporate[companies][][contragent].

Также можно создать корпоративного клиента вместе с заказом /api/v5/orders/create. В этом случае предварительное создание клиента для контактного лица не обязательно, оно будет создано вместе с заказом.

Редактирование корпоративного клиента

  • Для изменения основных данных корпоративного клиента используется метод /api/v5/customers-corporate/{externalId}/edit

Для работы с наборами объектов в корпоративном клиенте используются свои api-методы:

  • Добавить контактное лицо можно используя метод /api/v5/customers-corporate/{externalId}/contacts/create
  • Отредактировать данные контактного лица можно используя метод api/v5/customers-corporate/{externalId}/contacts/{entityExternalId}/edit. В качестве entityExternalId используется externalId клиента (либо id клиента, если передан параметр entityBy=id)
  • Создать компанию для корпоративного клиента можно используя метод api/v5/customers-corporate/{externalId}/companies/create
  • Отредактировать данные компании можно используя метод api/v5/customers-corporate/{externalId}/companies/{entityExternalId}/edit. В качестве entityExternalId используется externalId компании (либо id компании, если передан параметр entityBy=id)
  • Создать адрес для корпоративного клиента можно используя метод api/v5/customers-corporate/{externalId}/addresses/create
  • Отредактировать адрес можно используя метод api/v5/customers-corporate/{externalId}/addresses/{entityExternalId}/edit. В качестве entityExternalId используется externalId адреса (либо id адреса, если передан параметр entityBy=id)

Работа с заказом

Оформление заказа на клиента, не являющегося корпоративным, не изменилось. Если же вам надо оформить заказ на корпоративного клиента, то в поле order[customer][type] необходимо передать значение customer_corporate. Если вы оформляете заказ на существующего клиента, то так же надо передать order[customer][id], order[customer][externalId] или order[customer][browserId], в противном случае необходимо передать наименование для нового корпоративного клиента, который будет создан order[customer][nickName].

Кроме того, необходимо указать контактное лицо, на которое оформлен заказ - order[contact]. Если данные контактного лица не указаны, то будет создан новый клиент, и он будет привязан к корпоративному клиенту, выбранному в заказе, как контактное лицо.

Опционально можно указать компанию, на которую оформлен заказ order[company]. Если компания указана и в заказ не переданы данные контрагента order[contragent], то в заказ будут подставлены данные контрагента из копании.

Синхронизация

  • При синхронизации клиентов с юридическими реквизитами с системой, данные юридических реквизитов необходимо передавать в компанию корпоративного клиента /api/v5/customers-corporate/{externalId}/companies/{entityExternalId}/edit, личные данные - в клиента, являющегося контактным лицом /api/v5/customers/{externalId}/edit, адреса, связанные с клиентом, в адреса корпоративного клиента /api/v5/customers-corporate/{externalId}/addresses/{entityExternalId}/edit, данные профиля (скидка, наименование, метки плохого/важного клиента) в самого корпоративного клиента /api/v5/customers-corporate/{externalId}/edit
  • При обратной синхронизации корпоративных клиентов удобно использовать метод получения истории изменений корпоративных клиентов /api/v5/customers-corporate/history. Через этот метод можно получить историю изменений основных данных корпоративного клиента, данных компаний, адресов и связей контактных лиц и компаний. Если вам нужно отслеживать изменения данных клиентов, которые являются контактными лицами корпоративных клиентов, то следует использовать метод /api/v5/customers/history, и с помощью фильтра filter[contactIds][] в методе /api/v5/customers-corporate находить корпоративного клиента, для которого данный клиент является контактным лицом.
  • При обратной синхронизации заказов важно учитывать, что теперь в order[customer] могут быть как данные клиента, так и данные корпоративного клиента!

Пример создания корпоративного клиента с вложенными объектами

{
    "externalId": "corp_3144",
    "nickName": "My Company",
    "site": "main",
    "addresses": [
        {
            "index": "75002",
            "city": "Paris ",
            "text": "16, Main street 2nd floor",
            "countryIso": "FR",
            "externalId": "corp_3144_1"
        },
        {
            "index": "650004",
            "text": "Кемерово, ул. Лесная, д. 26, оф. 115",
            "countryIso": "RU",
            "externalId": "corp_3144_4"
        }
    ],
    "companies": [
        {
            "isMain": true,
            "externalId": "corp_3144_company",
            "active": true,
            "name": "My Company",
            "contragent": {
                "INN": "1111111"
            },
            "address": {
                "externalId": "corp_3144_4"
            }
        }
    ],
    "customerContacts": [
        {
            "customer": {
                "isMain": true,
                "externalId": "existing_contact_425",
                "site": "main"
            },
            "companies": [
                {
                    "company": {
                        "externalId": "corp_3144_company"
                    }
                }
            ]
        }
    ]
}

Пример создания заказа с новым корпоративным клиентом

{
    "externalId": "order_3144",
    "firstName": "Contact first name",
    "lastName": "Contact last name",
    "customer": {
        "type": "customer_corporate",
        "nickName": "Corporate nick name"
    }
}

Пример создания заказа с для существующего корпоративного клиента

{
    "externalId": "order_3144",
    "firstName": "Contact first name",
    "lastName": "Contact last name",
    "customer": {
        "type": "customer_corporate",
        "site": "main",
        "externalId": "corp_3144"
    },
    "contact": {
        "id": 34457
    },
    "company": {
        "externalId": "corp_3144_company"
    }
}
Благодарим за отзыв.
Была ли статья полезна?
Нет
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Да
Предыдущая статья
Информация о корпоративном клиенте в карточке заказа
В статье рассмотрим «привязку» корпоративного клиента к карточке заказа, а также выделим важные моменты при работе с ним.