YOM Docs

Untitled

Untitled

Untitled

Sobrescrituras

Las Sobrescrituras son configuraciones que permiten reemplazar campos y configuraciones para Productos dentro de Segmentos particulares en el sistema de YOM. Permite ajustar precios y condiciones de venta a un grupo de Comercios previamente segmentados. Esto facilita la personalización de precios y descuentos según diferentes criterios y períodos de tiempo.

¿Qué objetivo tienen las sobrescrituras?

Permitir que un Comercio vea de forma correcta y personalizada un catálogo de Productos. Esto implica que el comercio debe ver solo los productos que tiene asignados, al igual que con precios y condiciones comerciales correctas.

Consideración de diseño importante

Si bien el objeto de Producto también contiene información de precio y si el producto se encuentra habilitado o no, se tomó la decisión de diseño de que para todos los clientes (CPG) y todos los comercios estas características (precio y habilitado) siempre deberían venir desde un override. Esto con el objetivo de que el precio y la habilitación sean responsabilidad de un solo modelo.

¿Por qué y cómo se usan las sobrescrituras?

El problema de que un comercio vea el catálogo bien es un problema que cada CPG resuelve de forma particular y con reglas de negocio variadas. La solución de fuerza bruta a este problema es guardar el par (producto, comercio) para cada producto y comercio. Si bien esto es una solución correcta, produce una cantidad gigante de datos, por lo que es necesario usar una solución más eficiente: las sobrescrituras. En este caso se guardan dos pares de datos críticos (producto, segmento) que corresponde a la sobrescritura y (segmento, comercio) que corresponde al modelo de usersegments. De esta forma, si dos comercios comparten segmentos van a ver el mismo catálogo y no es necesario duplicar la información de productos. Esto permite reducir el tamaño de datos guardados en varios órdenes de magnitud.

Un detalle importante es que no es necesario que todos los productos tengan sobrescrituras para un segmento, y que un comercio puede pertenecer a varios segmentos. En caso de que un comercio tenga un producto modificado por dos segmentos, estas sobrescrituras se aplican en orden de prioridad más alta a más baja al momento de consultar el catálogo. Aplicar una sobrescritura consiste en modificar los campos que se encuentran en Override, al valor de la sobrescritura que se está aplicando. Si la sobrescritura no contiene un campo, no se modifica. De forma similar, el campo enabled de overrides determina si un producto está habilitado o no. Un producto está habilitado si el override de menor prioridad tiene como valor true; si tiene false, el producto no se ve para ese comercio.

Para asegurar que todos los productos estén habilitados y tengan precio por override, se estila crear un segmento base. Este es un segmento al que todos los comercios pertenecen. En este segmento base se crea una sobrescritura por producto. Esta sobrescritura se caracteriza por tener el campo enabled con valor false y una prioridad con un valor alto (es decir, los otros overrides sobrescriben el base). El valor que se suele usar para esto es 10000. También se le suele poner un precio de 99999, pero eso es algo que se hace para que sea más fácil encontrar algún error.

Ejemplos de negocio

Caso lista única de precio:

Si un cliente tiene una lista de precios que se usa para todos los comercios, se van a tener dos segmentos: el segmento base y el segmento que corresponde a la lista de precio única. Todos los comercios van a tener asignados estos dos segmentos. Y en el segmento de lista única se va a tener un override para cada producto (si la lista de precio no incluye un producto, el override base va a apagarlo).

Casos múltiples listas de precio:

Un comercio, una lista: esto ocurre cuando un comercio tiene una única lista de precio. Esto puede ocurrir por precios regionales, por condiciones comerciales, entre otros. En este caso, si existen N listas de precios, existen N+1 segmentos: el segmento base y un segmento por lista de precio. Cada comercio tiene dos segmentos: el segmento base y uno de los otros segmentos. En este caso puede que no todos los productos tengan override, debido a que existen productos que son exclusivos de ciertas regiones.

Un comercio con múltiples listas de precio: Esta situación ocurre cuando la segmentación de precios varía por categoría, o cuando existen restricciones para vender ciertos productos a un comercio (por ejemplo, alcohol). A continuación se presentan varios ejemplos.

Restricción de ventas a ciertos productos: Tomando el ejemplo de alcoholes y precios regionales, si hay N regiones, se tendrían N+2 segmentos: el segmento base, el segmento de los productos restringidos y un segmento por región. El segmento restringido tiene una prioridad más baja (es decir, es el más autoritativo). Para este caso hay dos opciones de cómo manejar el segmento de productos restringidos:

La primera opción es que los productos restringidos estén apagados en los segmentos regionales, y el segmento de productos restringidos tenga un override que los encienda. Alternativamente, se puede hacer que los segmentos regionales enciendan el producto y el segmento restringido lo apague. El caso a usar depende de cómo maneje el cliente estas restricciones. Es importante notar que los overrides del segmento restringido no deberían tener pricing, para evitar modificar el precio.

Listas de precio según categoría. Este es un caso que puede ocurrir cuando un cliente tiene segmentación de precios según categoría. Supongamos que un cliente vende lácteos y jugos, y que las listas de precio se manejan de forma separada. En este caso, si hay N listas de precio de lácteos y M listas de precio de jugo, van a existir N + M + 1 segmentos. Y cada comercio va a tener 3 segmentos: el segmento base, un segmento de lácteos y un segmento de jugos. Los segmentos de lácteos solo van a tener overrides de productos lácteos, y los segmentos de jugo se van a comportar de forma análoga.

Duración

Cada Sobrescritura tiene un período de validez definido mediante un rango de fechas. Esto permite controlar cuándo estará activa la Sobrescritura en la plataforma según las estrategias comerciales.

Carpeta y nombre de archivos

Entidadoverride

/<nombre_cliente>
	/production
		/load
			/override
				/all
					20240201_180000_override.csv
					...
				/created
					...
				/updated
					...
	/development
		...

Respuesta

Ejemplo de Respuesta

{
  "productName": "Harina de Trigo Integral",
  "productId": "SKU001",
  "segmentName": "Segmento A",
  "segmentId": "SEG001",
  "pricing": {
    "pricePerUnit": 10000,
    "operation": "replace",
    "discountType": "percentage",
    "discountList": [0.05, 0.10]
  },
  "isDisabled": false,
  "priority": 10,
  "startDate": "2024-07-01T00:00:00.000Z",
  "endDate": "2024-12-31T23:59:59.999Z"
}

CSV Aplanado

productName;productId;segmentName;segmentId;pricing_pricePerUnit;pricing_operation;pricing_discountType;pricing_discountList_0;pricing_discountList_1;isDisabled;startDate;endDate
"Harina de Trigo Integral";SKU001;"Segmento A";SEG001;10000;replace;percentage;0.05;0.1;false;"2024-07-01T00:00:00.000Z";"2024-12-31T23:59:59.999Z"

Lista de campos CSV

| --- | --- |

Estos campos aseguran una configuración precisa de precios y condiciones especiales para productos específicos dentro de YOM, permitiendo una gestión eficiente y flexible de la estrategia de precios.