Uso de la API para la integración con el Programa de fidelización
Copiar enlace al artículo
Copiado

Contenido

  1. Participación en el Programa de fidelización
  2. Activación de la participación en el Programa de fidelización
  3. Cálculo preliminar del pedido con el Programa de fidelización
  4. Creación del pedido
  5. Creación del pedido sin identificador del cliente
  6. Canje de puntos en el pedido

A continuación se describen los principales escenarios de uso de la interfaz de programación de aplicaciones (API) para interactuar con el Programa de fidelización.

Participación en el Programa de fidelización

Para que un cliente existente pueda utilizar los privilegios del Programa de fidelización, es necesario crear una participación para ese cliente.

Utilice el filtro de la lista de participaciones para comprobar si el cliente ya tiene una participación en el Programa de fidelización o si es necesario crearla. Para ello, deben pasarse como parámetros de búsqueda el código del Sitio y el identificador del cliente. La búsqueda del Programa de fidelización adecuado se realiza según el Sitio especificado en la configuración.

Activación de la participación en el Programa de fidelización

Según la configuración del Programa de fidelización, la participación puede requerir acciones adicionales de activación. La activación se realiza automáticamente al crear la participación y al editar el cliente o la participación, si los datos disponibles pasan a ser suficientes de acuerdo con la configuración.

Si está activada la confirmación mediante mensajes de texto (SMS), es decir, la opción «Confirmación de registro por SMS», debe utilizarse el método Activación de la participación en el Programa de fidelización. El método envía al cliente un código de confirmación al número de teléfono indicado en la participación y devuelve la información del SMS en object (SmsVerification).

El SMS se envía en nombre del primer Sitio de la lista de Sitios del Programa de fidelización o en nombre del Sitio predeterminado del sistema. Encontrará más información en la sección Verificación del nombre del remitente de SMS.

El código recibido por SMS debe enviarse mediante el método Confirmación de verificación, indicando el parámetro checkId obtenido con el método de activación.

El estado de la confirmación por SMS también puede consultarse mediante el método Comprobación del estado de verificación.

Una participación no activada solo puede acumular puntos.

Cálculo preliminar del pedido con el Programa de fidelización

Para realizar un cálculo preliminar del pedido y mostrar al cliente los precios y descuentos actuales, así como la información sobre los puntos, debe utilizarse el método Cálculo del descuento máximo. El método permite determinar el privilegio más ventajoso. El flujo de trabajo es el siguiente:

  • Llame al método Cálculo del descuento máximo para obtener la cantidad máxima de puntos que pueden canjearse en el pedido, la información sobre los descuentos y los puntos que se acumularán. Si no se envía el valor bonuses, se calcula de forma predeterminada la variante sin canje de puntos.

  • Si se necesita un cálculo que incluya el canje de puntos, vuelva a llamar al método con el parámetro bonuses para recalcular los datos.

Ejemplo de solicitud:

bonuses=150&order={
  "discountManualAmount": 0,
  "discountManualPercent": 5,
  "customer": {
    "id": 309
  },
  "items": [
    {
      "initialPrice": 10000,
      "quantity": 2,
      "discountManualAmount": 100,
      "offer": {
        "id": 26
      }
    },
    {
      "initialPrice": 20000,
      "quantity": 1,
      "offer": {
        "id": 22
      }
    }
  ],
  "delivery": {
    "cost": 100
  }
}

Fragmento de la respuesta:

...
"calculations": [
    {
        "privilegeType": "loyalty_event",
        "discount": 2340,
        "creditBonuses": 0,
        "loyaltyEventDiscount": {
            "id": 7
        },
        "maxChargeBonuses": 150,
        "maximum": false
    },
    {
        "privilegeType": "loyalty_level",
        "discount": 2340,
        "creditBonuses": 4521,
        "maxChargeBonuses": 150,
        "maximum": true
    },
    {
        "privilegeType": "personal_discount",
        "discount": 6121,
        "creditBonuses": 0,
        "maxChargeBonuses": 150,
        "maximum": false
    },
    {
        "privilegeType": "none",
        "discount": 2340,
        "creditBonuses": 0,
        "maxChargeBonuses": 150,
        "maximum": false
    }
]
...

Creación del pedido

Al crear un pedido con el Programa de fidelización, deben añadirse los siguientes campos a los datos de la solicitud:

  • privilegeType — el valor del privilegio obtenido durante el cálculo preliminar del pedido;

  • customer — el cliente del pedido debe tener una participación creada en el Programa de fidelización;

  • site — el Sitio del pedido debe formar parte de la lista de Sitios especificada en el Programa de fidelización;

  • loyaltyEventDiscountId — el identificador (ID) del descuento por evento, si el evento es aplicable. Este valor se devuelve durante el cálculo preliminar.

¡Importante!

Al crear un pedido no es necesario enviar la cantidad de puntos que deben acumularse. Esta lógica se ejecuta en el sistema al enviar en el pedido el tipo de privilegio correspondiente. Los puntos se abonarán al saldo de la participación cuando el pedido pase al grupo de estados «Completado».

Creación del pedido sin identificador del cliente

Si se crea un pedido sin enviar el identificador del cliente, la entidad del cliente se crea automáticamente. Los datos del cliente creado se devuelven en la respuesta a la solicitud de creación del pedido.

Para aplicar el Programa de fidelización al pedido creado, primero debe crearse una participación para el cliente y, después, debe enviarse privilegeType al editar el pedido.

Canje de puntos en el pedido

Para canjear puntos en un pedido, debe utilizarse el método Aplicación de puntos del Programa de fidelización. El pedido debe haberse creado previamente.

Se recomienda crear el pago después de canjear los puntos, ya que esta operación afecta al importe total final del pedido pendiente de pago. Como alternativa, debe ajustarse el importe del pago después del canje.

La cantidad de puntos canjeada realmente puede ser inferior a la enviada si no es posible distribuir correctamente el importe del descuento entre los productos. El método devuelve la cantidad de puntos canjeada para que pueda gestionarse esta situación. Para obtener un cálculo preciso, utilice el cálculo preliminar del pedido con el Programa de fidelización.

El flujo de confirmación por SMS durante el canje de puntos es similar al flujo de activación. Encontrará más información en la descripción del método de canje de puntos.

Ejemplo de respuesta a una solicitud de canje de puntos:

{
    "success": true,
    "order": {
        "bonusesCreditTotal": 4521,
        "bonusesChargeTotal": 150,
        "privilegeType": "loyalty_level",
        "totalSumm": 37760,
        "loyaltyAccount": {
            "id": 26,
            "amount": 0
        },
        "loyaltyLevel": {
            "id": 92,
            "name": "Maestro de compras"
        },
        "customer": {
            "id": 309,
            "personalDiscount": 10
        },
        "delivery": {
            "cost": 100
        },
        "site": "b12-skillum-ru",
        "items": [
            {
                "bonusesChargeTotal": 74,
                "bonusesCreditTotal": 2250,
                "discounts": [ // matriz de descuentos por tipo para la línea del producto
                    {
                        "type": "manual_product",
                        "amount": 200
                    },
                    {
                        "type": "manual_order",
                        "amount": 990
                    },
                    {
                        "type": "bonus_charge",
                        "amount": 74
                    }
                ],
                "id": 968,
                "initialPrice": 10000,
                "discountTotal": 632,
                "prices": [
                    {
                        "price": 9368,
                        "quantity": 2
                    }
                ],
                "vatRate": "20.00",
                "quantity": 2,
                "offer": {
                    "id": 26,
                    "externalId": "27"
                }
            },
            {
                "bonusesChargeTotal": 76,
                "bonusesCreditTotal": 2271,
                "discounts": [
                    {
                        "type": "manual_order",
                        "amount": 1000
                    },
                    {
                        "type": "bonus_charge",
                        "amount": 76
                    }
                ],
                "id": 969,
                "initialPrice": 20000,
                "discountTotal": 1076,
                "prices": [
                    {
                        "price": 18924,
                        "quantity": 1
                    }
                ],
                "vatRate": "20.00",
                "quantity": 1,
                "offer": {
                    "id": 22,
                    "externalId": "23"
                }
            }
        ]
    }
}
Gracias por tus comentarios.
¿Te resultó útil este artículo
No
  • Рекомендации не помогли
  • Нет ответа на мой вопрос
  • Текст трудно понять
  • Не нравится описанный функционал
Si
Artículo siguiente
Procedimiento de integración de un servicio de mensajería con el sistema
Procedimiento de integración de un servicio de mensajería con el sistema mediante un módulo de transporte y Transport API.