Lista de verificación antes de activar clientes corporativos
Copiar enlace al artículo
Copiado

Contenido

  1. Activación
  2. Triggers
  3. Trabajo con clientes corporativos a través de la API

Activación

De forma predeterminada, la función de clientes corporativos está activada para todas las cuentas que utilizan los planes tarifarios correspondientes («Profesional»). Sin embargo, las cuentas que ya tenían clientes con datos legales o bancarios cumplimentados cuando se incorporó esta función se transfieren al modo de compatibilidad. En este modo, los datos legales de los clientes se gestionan según el esquema anterior y la función de clientes corporativos permanece desactivada. Para estas cuentas es necesario activar manualmente el trabajo con clientes corporativos.

¡Importante!

Antes de activar los clientes corporativos, es necesario comprobar que, en los pedidos creados mediante la interfaz de programación de aplicaciones (API), el tipo de contraparte del pedido coincida con el tipo de contraparte del cliente asociado. Por ejemplo, no debe existir un pedido cuyo tipo de contraparte sea «Persona física» si el tipo de contraparte del cliente correspondiente no es «Persona física». La lógica de activación se describe en Configuración de clientes corporativos.

Triggers

Debido a los cambios en la estructura de datos de los pedidos, el campo order.customer ahora puede contener tanto un cliente como un cliente corporativo. Además, se han incorporado los campos order.contact y order.company.

Es necesario revisar todos los triggers de cambio de datos del pedido que utilicen de alguna forma los datos de order.customer. Si un trigger no debe ejecutarse para los pedidos realizados a nombre de un cliente corporativo, es necesario añadir a su condición la comprobación order.customer.typeCode == 'customer'. En caso contrario, se debe adaptar el trigger teniendo en cuenta que los campos disponibles en order.customer son distintos para un cliente y para un cliente corporativo.

Trabajo con clientes corporativos a través de la API

Anteriormente, para acceder a los datos de todos los clientes solo se utilizaban los métodos /api/v5/customers/*. Para trabajar con clientes corporativos se deben utilizar los métodos /api/v5/customers-corporate/*. Las versiones de la API anteriores a la 5 no permiten trabajar con clientes corporativos.

Cada cliente corporativo contiene tres conjuntos de objetos:

  • La lista de personas de contacto representa las relaciones entre el cliente corporativo y los clientes. Para cada relación se puede indicar el conjunto de empresas a las que pertenece la persona de contacto.
  • La lista de empresas contiene las empresas que forman parte del cliente corporativo. Cada empresa dispone de datos legales y bancarios.
  • La lista de direcciones contiene las direcciones del cliente corporativo.

Creación de un cliente corporativo

Antes de crear un cliente corporativo, es necesario crear los clientes que actuarán como personas de contacto mediante los métodos /api/v5/customers/create o /api/v5/customers-corporate/upload.

Para crear el propio cliente corporativo se utiliza el método /api/v5/customers-corporate/create o /api/v5/customers-corporate/upload para una carga por lotes. Las personas de contacto se indican en el campo customerCorporate[customerContacts]. Los datos de la contraparte deben enviarse en los campos de la empresa customerCorporate[companies][][contragent].

También se puede crear un cliente corporativo junto con un pedido mediante /api/v5/orders/create. En este caso, no es necesario crear previamente al cliente que actuará como persona de contacto: se creará junto con el pedido.

Edición de un cliente corporativo

Para modificar los datos principales de un cliente corporativo se utiliza el método /api/v5/customers-corporate/{externalId}/edit.

Los objetos relacionados del cliente corporativo se gestionan mediante métodos específicos de la API:

  • Para añadir una persona de contacto se utiliza /api/v5/customers-corporate/{externalId}/contacts/create.
  • Para editar sus datos se utiliza api/v5/customers-corporate/{externalId}/contacts/{entityExternalId}/edit. Como entityExternalId se utiliza el externalId del cliente o su id si se ha enviado el parámetro entityBy=id.
  • Para crear una empresa se utiliza api/v5/customers-corporate/{externalId}/companies/create.
  • Para editar los datos de una empresa se utiliza api/v5/customers-corporate/{externalId}/companies/{entityExternalId}/edit. Como entityExternalId se utiliza el externalId de la empresa o su id si se ha enviado el parámetro entityBy=id.
  • Para crear una dirección se utiliza api/v5/customers-corporate/{externalId}/addresses/create.
  • Para editar una dirección se utiliza api/v5/customers-corporate/{externalId}/addresses/{entityExternalId}/edit. Como entityExternalId se utiliza el externalId de la dirección o su id si se ha enviado el parámetro entityBy=id.

Trabajo con pedidos

El proceso de creación de pedidos para clientes no corporativos no ha cambiado. Para crear un pedido para un cliente corporativo, se debe enviar el valor customer_corporate en el campo order[customer][type].

Si el pedido se crea para un cliente corporativo existente, también se debe enviar order[customer][id], order[customer][externalId] u order[customer][browserId]. En caso contrario, se debe enviar en order[customer][nickName] el nombre del nuevo cliente corporativo que se creará.

Además, en order[contact] se debe indicar la persona de contacto para la que se crea el pedido. Si no se proporcionan sus datos, se creará un nuevo cliente y se vinculará como persona de contacto al cliente corporativo seleccionado en el pedido.

De forma opcional, se puede indicar en order[company] la empresa para la que se crea el pedido. Si se indica una empresa y no se envían los datos de la contraparte en order[contragent], se utilizarán los datos de la contraparte de dicha empresa.

Sincronización

  • Al sincronizar con el sistema clientes que contienen datos legales, estos datos deben enviarse a la empresa del cliente corporativo mediante /api/v5/customers-corporate/{externalId}/companies/{entityExternalId}/edit; los datos personales, al cliente que actúa como persona de contacto mediante /api/v5/customers/{externalId}/edit; las direcciones vinculadas al cliente, a las direcciones del cliente corporativo mediante /api/v5/customers-corporate/{externalId}/addresses/{entityExternalId}/edit; y los datos del perfil, como el descuento, el nombre y las marcas de cliente problemático o importante, al propio cliente corporativo mediante /api/v5/customers-corporate/{externalId}/edit.
  • Para la sincronización inversa se puede obtener el historial de cambios de los clientes corporativos mediante /api/v5/customers-corporate/history. El método devuelve los cambios en los datos principales del cliente corporativo, las empresas, las direcciones y las relaciones entre las personas de contacto y las empresas. Para seguir los cambios de los clientes que actúan como personas de contacto, se debe utilizar /api/v5/customers/history y buscar el cliente corporativo correspondiente mediante el filtro filter[contactIds][] del método /api/v5/customers-corporate.
  • Durante la sincronización inversa de pedidos se debe tener en cuenta que order[customer] puede contener los datos de un cliente o los de un cliente corporativo.

Ejemplo de creación de un cliente corporativo con objetos anidados

{
    "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": "28001",
            "text": "Madrid, calle de Alcalá, 26, oficina 115",
            "countryIso": "ES",
            "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"
                    }
                }
            ]
        }
    ]
}

Ejemplo de creación de un pedido con un nuevo cliente corporativo

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

Ejemplo de creación de un pedido para un cliente corporativo existente

{
    "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"
    }
}
Gracias por tus comentarios.
¿Te resultó útil este artículo
No
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Si
Artículo anterior
Información sobre un cliente corporativo en la ficha del pedido
En este artículo, veremos la "vinculación" de un cliente corporativo a una ficha del pedido, y también destacaremos puntos importantes al trabajar con él.