Reglas de flujo de venta
Las reglas de flujo de venta sirven para que se modifiquen o añadan productos automáticamente a la venta según una serie de condiciones que se cumplen dependiendo de los productos seleccionados.
Ejemplos
- Si se añaden cuatro unidades del producto 'Producto1' a la venta, se añade automáticamente una quinta unidad del producto a coste cero.
- Si se añade el producto 'Product2' y además se añade el producto 'Producto3', se aplicará un 50% de descuento al producto 'Producto3'.
- Por cada 20 niños añadidos a un grupo escolar, se añade una entrada de maestro gratis.
Importante
Las reglas no son acumulativas para un mismo producto. Si ya se ha aplicado una regla a un producto, este queda descartado para las siguientes reglas. El orden de aplicación de las reglas lo marca el campo Order
del nodo Rules
.
Método de acceso
GET activity/saleflowrules
Estructura de la respuesta
-
Rules
: (list
). Array de reglas.Id
: (string
). Identificador de la regla.Name
: (string
). Nombre de la regla.Order
: (byte
). Prioridad de la regla. Este campo indica el orden en que se aplicarán las reglas, ya que no se puede aplicar más de una regla a un mismo producto.Inputs
: (lista
). Array de productos a los que se aplican las reglas.ProductId
: (string
). Identificador de producto.
-
Processors
: (lista
). Array de procesadores que se encarga de aplicar las condiciones para los productos del campoInputs
.Value
: (byte
). cantidad de productos que se deben añadir a la venta para que se aplique este procesador.-
OutputIfExistsApplicability
: (byte
). Valor que indica cómo se procesarán las salidas producidas por este procesador.Posibles valores
- 0: sin definir.
- 1: el primero por orden.
- 2: el más barato.
- 3: el más caro.
- 4: todos.
-
Outputs
: (list
). Son las salidas que produce la aplicación de procesador.ProductId
: (string
). Identificador de producto que produce esta salida.Order
: (byte
). Prioridad de la salida. Se aplica si hay varias salidas y el valor del campoOutputIfExistsApplicability
del procesador es igual a 1.Quantity
: (byte
). Cantidad de productos que produce esta salida.-
ApplicationType
: (byte
). Indica si esta salida se refiere a un producto que ya existía en la compra o se ha añadido uno nuevo.Posibles valores
- 1: se añade un nuevo producto a la salida.
- 2: se actualiza un producto que ya existe en
Inputs
.
-
PriceModifierType
: (byte
). Indica qué modificador de precio se aplica al producto.Posibles valores
- 1: porcentaje de descuento.
- 2: porcentaje de incremento.
- 3: descuento en valor absoluto.
- 4: incremento en valor absoluto.
- 5: precio total.
-
PriceModifierValue
: (decimal
). Indica qué valor de precio se aplica al producto.
-
Success
(boolean
): valor que indica si la llamada ha sido procesada correctamente o no. Timestamp
(dateTime
): instante de tiempo en el que se procesó la petición. Formato ISO 8601 (yyyy-MM-ddThh:mm:ss.fffffff).ErrorMessage
(string
): mensaje de error explicando por qué la petición no ha sido correcta. En caso que haya sido correcta, devolveránull
.ErrorCodes
(string[]
): lista de códigos que identifican los errores que se hayan producido en la llamada.ErrorEntityBreakDown
(list
): Lista que contiene objetos con el nombre e ID en caso de error.Id
(string
): IdentificadorName
(string
): Nombre relacionado del identificador.
Ejemplo de respuesta
En el siguiente ejemplo podemos ver dos reglas:
- Regla descuento: si la compra contiene los productos "twy5yhbishk91" o "uspeg7nr5st96" se actualiza el producto "twy5yhbishk91" con 5€ de descuento.
- Regla producto gratis (3x2): si la compra contiene el producto "hwuk9huaqopwo" con cantidad 2, se añade el producto "twy5yhbishk91" con un 100% de descuento.
{
"Rules":
[
{
"Id" : "zz4fnju76ysb1",
"Name": "Regla descuento",
"Order": 1,
"Inputs":
[
{
"ProductId": "twy5yhbishk91"
},
{
"ProductId": "uspeg7nr5st96"
}
],
"Processors":
[
{
"Value": 1,
"OutputIfExistsApplicability": 0,
"Outputs":
[
{
"ProductId": "twy5yhbishk91",
"Order": 1,
"Quantity": 1,
"ApplicationType": 2,
"PriceModifierType": 3,
"PriceModifierValue": 5.000000000000
}
]
}
]
},
{
"Id" : "hy8fnju42ycf4",
"Name": "Regla producto gratis 3x2",
"Order": 2,
"Inputs":
[
{
"ProductId": "hwuk9huaqopwo"
}
],
"Processors":
[
{
"Value": 2,
"OutputIfExistsApplicability": 0,
"Outputs":
[
{
"ProductId": "twy5yhbishk91",
"Order": 1,
"Quantity": 1,
"ApplicationType": 1,
"PriceModifierType": 1,
"PriceModifierValue": 100.000000000000
}
]
}
]
}
],
"Success": true,
"Timestamp": "2021-02-18T17:02:27.8165916"
}