Brightmarket Sync Guide

sync_registry.py

Conecta tu adapter y constants al runner del SDK.

src/sync_registry.py expone get_sync_registry() al CLI del SDK. No contiene lógica de negocio: solo cablea tu proyecto.

from brightmarket_data_sync.cli import SyncRegistry
from brightmarket_data_sync.sync import build_default_commands, mappers_from_constants

from src import constants
from src.adapter import ClientAdapter
from src.db import Database


def get_sync_registry():
    mappers = mappers_from_constants(constants)
    return SyncRegistry(
        client_slug="my-client",
        db_factory=Database,
        adapter_factory=ClientAdapter,
        startup_message="Starting my-client sync...",
        shutdown_message="Done.",
        commands=build_default_commands(mappers),
    )

build_default_commands() registra -clients, -skus, -tickets, -payment_methods, -promotions, -rewards, -points_movements, -stock_adjustments y -stock_import usando el sync del SDK.

Ambos comandos de stock leen get_stock_adjustments(). -stock_adjustments envía un set-stock por fila; -stock_import genera temp/stock-import-….csv, lo sube e inicia la importación masiva asíncrona. Si un cliente filtra la lista de comandos, debe agregar -stock_import explícitamente a su allowlist.

Para personalizar (por ejemplo omitir rewards), filtrá la lista de comandos o registrá handlers propios que llamen funciones de brightmarket_data_sync.sync.