Precios Avanzados

Tabla de Contenidos

1. Introducción y Arquitectura

El sistema de Precios B2B de Orangecat es una arquitectura modular, escalable y flexible diseñada para manejar escenarios de precios complejos en Magento 2. Sigue un Patrón de Orquestador donde un módulo central (Prices) actúa como punto de entrada, mientras que módulos independientes (PricesList, PricesCompany) proporcionan la lógica específica.

Cómo funciona

El módulo principal define una interfaz PriceCalculatorInterface. Cada módulo de implementación inyecta su calculador en un CalculatorPool. Cuando Magento solicita un precio, el Orquestador recorre estos calculadores para determinar el precio final, garantizando una integración perfecta y una fácil extensibilidad.

2. Orangecat Prices (Core)

El módulo Orangecat Prices es el orquestador de todo el ecosistema de precios. Intercepta la generación de precios nativa de Magento y delega el cálculo en los módulos registrados.

2.1. Menú de Administración

Accede a la configuración de precios a través de la barra lateral del Admin de Magento en Orangecat > Prices.

Menú de Administración de Precios

Figura 2.1: Menú de Precios en el Admin de Magento

2.2. Ajustes Generales

Configura el comportamiento principal del motor de precios en Tiendas > Configuración > Orangecat > Prices.

Configuración de Precios

Figura 2.2: Ajustes de Precios Core

Los ajustes clave en el orquestador incluyen:

  • Modo de Resolución de Conflictos: Si múltiples módulos de precios devuelven un precio, ¿cuál gana?
    • Precio más bajo: El mejor para el cliente.
    • Prioridad: Sigue el orden de ejecución de los módulos (Último módulo ejecutado).

3. Orangecat Prices Listing

El módulo Orangecat Prices Listing permite a los administradores crear Listas de Precios globales. Estas listas contienen precios de productos específicos o descuentos y se pueden asignar a múltiples empresas simultáneamente.

3.1. Configuración General

Ajustes que se encuentran en Tiendas > Configuración > Orangecat > Prices List:

  • Activar Listas de Precios: Activa o desactiva la funcionalidad de Listas de Precios B2B personalizadas.
  • Modo de Resolución: Elige cómo se aplicarán los descuentos:
    • Cascada: Aplica los descuentos secuencialmente.
    • Peso: Utiliza una lógica ponderada para la resolución.

3.2. Gestión de Listas de Precios

La vista de cuadrícula proporciona una visión general de todas las listas de precios activas e inactivas en el sistema.

Cuadrícula de Listas de Precios

Figura 3.1: Cuadrícula de Gestión de Listas de Precios

3.2. Editando una Lista de Precios

Al editar una lista, puedes definir su ámbito y atributos básicos.

Editar Lista de Precios

Figura 3.2: Atributos Generales de la Lista de Precios

3.3. Selección de Productos y Precios

Selecciona productos para incluir en la lista y aplica reglas de precios personalizadas (Precio Fijo o Porcentaje de Descuento).

Selección de Producto

Figura 3.3: Seleccionando Productos para la Lista

Establecer Reglas de Precios

Figura 3.4: Definiendo Precios de Productos

3.4. Asociando Listas de Precios a Empresas

Una vez creada una Lista de Precios, se puede asociar con una o varias empresas desde el Admin de Magento. Esto permite que esas empresas se beneficien de las reglas de precios definidas.

Asociar Lista de Precios a Empresa

Figura 3.5: Asociando Listas de Precios con una Empresa

3.5. Importando Listas de Precios

Para facilitar las actualizaciones masivas, el módulo incluye una función de importación que permite a los administradores subir listas de precios y sus correspondientes precios utilizando archivos CSV.

Importar Listas de Precios

Figura 3.6: Interfaz de Importación de Listas de Precios

3.6. Documentación de la API

El módulo expone una API REST completa para integraciones externas (ERP/CRM).

GET /search (Buscar Listas de Precios)

Búsqueda API

POST / (Añadir Lista de Precios)

Añadir API

PUT /{id} (Actualizar Lista de Precios)

Actualizar API

GET /{id} (Obtener Detalles de la Lista de Precios)

Obtener ID API

GET /code/{code} (Obtener por Código)

Obtener Código API

DELETE /{id} (Eliminar Lista de Precios)

Eliminar API

POST /prices (Añadir Precios a la Lista)

Añadir Precios API

GET /prices/{id} (Obtener Precios de la Lista)

Obtener Precios API

POST /associate-company (Asignar a Empresa)

Asociar API

4. Orangecat Prices Company

El módulo Orangecat Prices Company proporciona el nivel más alto de especificidad al permitir sobrescribir precios dedicados a una sola empresa. Esto tiene prioridad sobre las listas de precios globales.

4.1. Configuración General

Ajustes que se encuentran en Tiendas > Configuración > Orangecat > Prices Company:

  • Activar Precios de Empresa Personalizados: Activa o desactiva la funcionalidad de precios por empresa.
  • Estrategia de Resolución de Precios: Si un producto ya tiene un precio dinámico (por ejemplo, de una Lista de Precios), ¿debería este Precio de Empresa acumularse encima o sobrescribir contra el Precio Base del catálogo?
    • Sobrescribir: Aplicar contra el Precio Base del Catálogo.
    • Acumular: Aplicar encima de descuentos anteriores.

4.2. Gestión de Precios de Empresa

Cuadrícula de precios de empresa

Figura 4.1: Cuadrícula de Precios Específicos por Empresa

4.2. Asignando Precios a Empresas

Navega a la pantalla de edición de la empresa para gestionar sus reglas de precios exclusivas.

Editar Precios de Empresa

Figura 4.2: Gestionando Precios para una Empresa Específica

Seleccionar Productos para Empresa

Figura 4.3: Seleccionando Productos Exclusivos

Establecer Precios de Empresa

Figura 4.4: Aplicando Tarifas Específicas de Empresa

4.3. Importando Precios de Empresa

Los administradores pueden importar masivamente precios de productos para empresas específicas a través de la herramienta de importación, asegurando una rápida sincronización con los datos de precios externos.

Importar Precios de Empresa

Figura 4.5: Interfaz de Importación de Precios de Empresa

4.4. Documentación de la API

Endpoints REST para gestionar mapeos directos de precios de empresa a producto.

GET /search (Buscar Precios de Empresa)

Buscar Empresa API

POST /add (Añadir Precio a Empresa)

Añadir Precio API

GET /price/{companyId}/{sku} (Obtener Precio Específico)

Obtener Precio API

DELETE /company/{companyId} (Eliminar todos los precios de la empresa)

Eliminar Todos API

DELETE /sku/{sku} (Eliminar SKU de todas las empresas)

Eliminar SKU API