Guía de implementación
Paso a paso para implementar adapter, sync y ejecución en tu proyecto cliente.
Tu proyecto sincroniza datos desde tu fuente hacia Brightmarket usando el SDK brightmarket-data-sync. Todo lo que escribe en la API vive en el SDK; vos implementás lectura, transformación y orquestación.
Checklist
1. Obtener el proyecto
Seguí Obtener tu proyecto: entrega de Brightmarket o descarga del zip.
2. Instalar dependencias
Inicio rápido: login_aws.env → auth-pip.sh → pip install → .env.
3. Probar conectividad
python -m src.main -test4. Adaptar conexión a tu fuente (src/db.py)
El SDK no incluye drivers de BD. Si tu fuente no es SQL Server, adaptá src/db.py a pyodbc, psycopg2, archivos, etc.
Tu clase debe exponer consultas que devuelvan filas (idealmente list[dict]).
5. Implementar el adapter (src/adapter.py)
Implementá todos los métodos de BrightmarketAdapter:
| Método | Qué devolvés |
|---|---|
get_clients_created / get_clients_modified | Filas de clientes |
get_skus | Filas de artículos/SKUs |
get_tickets | Una fila por línea de ticket |
get_payment_methods | Medios de pago distintos |
get_promotions | Filas o dicts según tu sync |
get_rewards | Rewards (opcional) |
Fechas en formato YYYYMMDD. Devolvé filas crudas; el mapeo a payloads va en src/sync/.
Implementá un método a la vez y probá con el flag CLI correspondiente.
6. Constantes de negocio (src/constants.py)
Mapeos de tu organización: sexo, departamento/región, niveles de cliente, sucursales a omitir, etc.
7. Módulos sync (src/sync/)
Patrón por entidad:
- Leer con el adapter
- Transformar fila → argumentos del writer
- Llamar al writer del SDK
Ver Estructura del proyecto para cada archivo y Referencia del SDK para payloads.
Promociones — PromotionsWriter con callbacks opcionales para sucursales o métodos de pago faltantes.
8. CLI (src/main.py)
Flags habituales en tu proyecto:
| Flag | Acción |
|---|---|
-test | Probar BD + login API |
-clients | Clientes nuevos y modificados |
-skus | Artículos / SKUs |
-tickets | Tickets de venta |
-payment_methods | Medios de pago |
-promotions | Promociones |
-rewards | Rewards (opcional) |
-from / -to | Rango YYYYMMDD |
9. Ejecutar syncs
python -m src.main -clients -from 20260101 -to 20260131Orden sugerido: -payment_methods → -clients → -skus → -promotions → -rewards (opcional) → -tickets.
Ampliar el proyecto
| Necesidad | Qué agregar |
|---|---|
| Más entidades | Método en adapter + src/sync/<entidad>.py + flag en main.py |
| Varias bases | Varios conectores en el adapter |
| Docker / CI | Ver CI / PyInstaller |
| Ejecutable | PyInstaller con hiddenimports=['brightmarket_data_sync', 'brightmarket_data_sync.writers'] |
Referencia
- Estructura del proyecto — archivos de tu repo
- Referencia del SDK — contrato y writers
- API REST — endpoints subyacentes
Si necesitás un ejemplo de implementación real, pedilo a tu contacto de Brightmarket.