Brightmarket Sync Guide

main.py y sync_registry.py

Wrapper CLI compatible y registro de comandos para el runner del SDK.

src/main.py es el entrypoint compatible del proyecto cliente. La forma de uso sigue siendo python -m src.main ..., pero el parsing, logging, validación de fechas y dispatch viven en el runner del SDK.

Los comandos del cliente se declaran en src/sync_registry.py. Ahí se registran los handlers que llaman a src/sync/*.

Responsabilidades

TareaImplementación
Cargar .envRunner CLI del SDK
LoggingRunner CLI del SDK
Conexión a fuenteDatabase (o tu propio cliente)
AdapterClientAdapter(db)
API BrightmarketBrightAPI(BrightmarketConfig.from_env())
Registro de comandossrc/sync_registry.py
Sync por entidadsrc/sync/*

Uso

python -m src.main -test
python -m src.main -clients
python -m src.main -tickets -from 20260101 -to 20260131

El SDK también instala un entrypoint directo para casos avanzados:

brightmarket-sync --registry src.sync_registry -tickets -from 20260101 -to 20260131

Para operación diaria, CI, Docker y PyInstaller, mantené python -m src.main ....

Flags CLI

FlagAcción
-testVerificar conectividad (BD + login API) sin sincronizar
-clientsSincronizar clientes creados y modificados
-skusSincronizar artículos/SKUs
-ticketsSincronizar tickets (un POST por ticket)
-tickets -fileGenerar JSONL y subir a import
-tickets -file -generate-onlySolo generar JSONL en temp/
-payment_methodsSincronizar métodos de pago
-promotionsSincronizar promociones
-rewardsSincronizar rewards (opcional)
-points_movementsSincronizar movimientos de puntos (opcional)
-stock_adjustments [branch_id]Sincronizar stock (opcional; sin sucursal = todas)
-from YYYYMMDD -to YYYYMMDDRango de fechas para entidades filtradas

Para carga inicial, programación diaria y fechas dinámicas en cron, ver Programación y cargas.

Qué no hacer

  • No agregar llamadas HTTP directas a Brightmarket
  • No duplicar login: usá BrightAPI del SDK
  • No mezclar transformación de payloads en src/main.py — eso va en src/sync/*

On this page