Motor de promos externo

Request

El request de Fenicio será una variante del objeto Orden, enviando los datos del cliente y las líneas de productos del carrito de compras.

{
  "_idSolicitud": "200325120000-FNSHPUY-3c7621ed5a707177c1421cce79338668",
  "comprador": {
    "id": 123,
    "codigo": "doc1234567",
    "email": "[email protected]",
    "nombre": "Juan",
    "apellido": "Pérez",
    "telefono": "+59899123456",
    "genero": "M",
    "extras": null,
    "documento": {
      "numero": "41234568",
      "pais": "UY",
      "tipo": "DOCUMENTO_IDENTIDAD"
    }
  },
  "moneda": "UYU",
  "lineas": [
    {
      "nombre": "Remera Slim Fit",
      "sku": "0000123",
      "cantidad": 2,
      "cantidadRegalo": 0,
      "codigoPrecio": "1",
      "precio": 500,
      "descuentos": null
    },
    {
    "nombre": "Nombre de articulo",
      "sku": "0000124",
      "cantidad": 1,
      "cantidadRegalo": 1,
      "codigoPrecio": "1",
      "precio": 500,
      "descuentos": [
        {
          "nombre": "Cupon 2024",
          "codigo": "123",
          "origen": "CUPON",
          "monto": 250
        }
      ]
    },
    {
      "nombre": "Costo envío",
      "sku": "ENVIO_100",
      "cantidad": 1,
      "cantidadRegalo": 0,
      "codigoPrecio": "1",
      "precio": 100,
      "descuentos": null
    }
  ]
}

Response

El servicio debe retornar una lista de objetos, con los siguientes datos:

Producto

Clave
Tipo
Descripción

sku

String(128)

Código único que identifica al artículo en el sistema externo.

cantidad

Int(4)

Cantidad de unidades.

moneda

String(4)

Código ISO 4217 de la moneda. Ejemplo: UYU o USD

descuentos

Descuentos | null

Lista de descuentos a aplicar a cada unidad de la línea.

Descuentos

Clave
Tipo
Descripción

id

String(32)

Id que identifica el descuento a aplicar en el producto.

nombre

String(128)

Nombre descuento.

cantidadAplica

Int(4)

Cantidad a la que debe aplicar el descuento.

precioDescuento

Numeric

Precio del descuento. (Monto fijo)

[
  {
    "sku": "0000123",
    "cantidad:": 2,
    "precioOriginal:": 500,
    "moneda:": "UYU",
    "descuentos": [
      {
        "id": "DX1",
        "nombre": "DOS POR UNO",
        "cantidadAplica": 1,
        "precioDescuento": 500
      }
    ]
  },
  {
    "sku": "0000124",
    "cantidad:": 1,
    "precioOriginal:": 500,
    "moneda:": "UYU",
    "descuentos": null
  },
  {
    "sku": "ENVIO_100",
    "cantidad": 1,
    "precioOriginal": 100,
    "moneda:": "UYU",
    "descuentos": [
      {
        "id": "DAC",
        "nombre": "ENVIO GRATIS DAC",
        "cantidadAplica": 1,
        "precioDescuento": 100
      }
    ]
  }
]

Consideraciones

  • El descuento que nos retornan debe ser un monto, no un porcentaje. Esto nos permitiría aplicar e descuento directamente y evitar posibles diferencias entre sistemas. De esta forma, garantizamos que el valor final para el cliente sea el correcto.

  • Los descuentos que estén configurados en Fenicio los vamos a enviar en el request, los descuentos serán de productos y cupones.

  • Los descuentos de medios de pago se manejan del lado de Fenicio, ya que contamos con los BINs de las tarjetas para aplicar correctamente el descuento.

  • Los descuentos de medios de pago van a acumularse en todo momento a los descuentos brindados por el motor.

  • En caso de que el motor de promociones no responda dentro del tiempo esperado, no se aplicará el descuento y el cliente podrá continuar con la compra sin los descuentos. Se notificará al cliente que no fue posible calcular los descuentos en ese momento, pero la transacción procederá normalmente.

Última actualización

¿Te fue útil?