Estrategia de precios en Magento 2 — Precios por cliente & listas bien hechas
1. Fuente de verdad: ERP/PIM & ownership
La cuestión clave no es “¿cuál es el precio?” sino “¿de dónde viene?”. Normalmente ERP/PIM. Magento actúa como capa de presentación, no como maestro. La autoridad de precios reside en el ERP; allí vive la lógica contractual. Flujo unidireccional ERP/PIM → Magento. Cambios directos en Magento sin upstream = divergencia y reconciliación.
2. Modelo de datos: listas & específicos de cliente
Modelo claro en lugar de infinidad de grupos.
- Listas de precios (catálogo compartido): Escalones base (p. ej., “lista”, “oro”, “plata”). Cada lista contiene precios completos por SKU. Un cliente tiene una lista base.
- Grupos de clientes: Para lógica de negocio (impuestos/envío/accesos), no para precios.
- Overrides por cliente: Precio por SKU & cuenta con máxima prioridad – usar con precisión.
3. Reglas de precedencia
Cascada única y predecible para PDP/PLP/carrito/checkout:
- Precio promocional (reglas de catálogo)
- Precio específico de cliente (
customer_id+sku) - Precio por tramos (cantidad por producto)
- Precio de lista asignada
- Precio de lista (por defecto)
4. Divisa, impuestos y localización
Precios sin impuestos; que Magento calcule tasas. Tipos de cambio desde ERP; evitar conversión en tiempo real. Precálculo/caché por divisa.
5. Rendimiento: precálculo vs. bajo demanda
- Índice de precios: Extender el indexador (listas + específicos). Tabla plana para consultas rápidas:
SELECT price FROM price_index WHERE customer_id=X AND sku=Y AND website_id=Z. - Full Page Cache: Para logados, usar bloques privados/hole‑punch para precios.
- Bajo demanda: Reservar cálculos costosos a carrito/checkout y basarlos en índices.
6. Casos límite
- Precios por región: Asociar listas a websites/stores; escopar bien la cuenta.
- Tramos complejos: La lógica vive en ERP; Magento recibe el precio resultante.
- Campañas: Reglas de catálogo con interacción definida en la cascada; probar a fondo.
7. APIs & eventos
Observers/Events para ajustes finales (catalog_product_get_final_price). Exponer API que respete la prioridad de reglas (headless).
8. Gobernanza & auditoría
Registrar importes/cambios (quién/cuándo/antes/después). “Simulador de precio” en admin para ver regla aplicada por cliente+producto.
9. Despliegue/migración
Fases: empezar con una lista/cliente grande, comparar salida viejo/nuevo en paralelo, feature‑flag por grupos piloto. Ensayo general del primer import.
10. KPIs & pruebas
- Tiempo de indexación (re‑index total)
- Velocidad de cálculo (PDP/PLP logados)
- Exactitud (tickets de precio → 0)
Pruebas de integración: crear cliente, asignar lista, override, y verificar precio esperado en frontend/API.
