Ir al contenido

SageStoreFromHubfiscal

Lee la salida de HubfiscalStoreBillpt (o cualquier nodo Hub Fiscal) y escribe el documento fiscal directamente en las tablas de staging de Sage X3 MSSQL, siguiendo la estructura de 3 líneas de EQZ_MigracionEcomm_Sage.

Caracteristicas principales:

  • Mapeo automático por pais: Deriva planta, tipo de asiento, prefijo de documento y cuentas contables a partir del código ISO del pais (PT / ES / FR / IT). Todos los valores pueden sobreescribirse via configuración.
  • 3 líneas contables: Inserta una línea de deudores (430xxx), una línea de ventas (700xxx) y una línea de IVA (477xxx) por documento.
  • 3 filas analiticas: Inserta una fila YFACTERAN por línea contable con CCE_0=pais, CCE_1=canal, CCE_2=delegación, CCE_3=tercero.
  • Soporte nota de crédito: Invierte los signos para documentos NC (deudores −1 / ventas +1 / IVA +1).
  • Transacción atomica: Las tres tablas se confirman juntas — hace rollback completo en caso de error.
CampoTipoRequeridoDescripción
credentials_idcredentialsSiCredencial Sage X3 MSSQL (proveedor sageCreateDocument)
sage_schemaselectNoSchema Sage: LIVE (producción) o DEV. Default: LIVE
country_isotextNoFuerza el pais ISO. Por defecto usa country_iso de la salida del Hub Fiscal
plantatextNoCódigo de planta Sage. Auto: PT→22_PT, ES→21_ES, FR→23_FR, IT→24_IT
tipasiientotextNoTipo de asiento (TIPASIIENTO_0). Auto: PT/FT→TPE03, PT/NC→AEC02, ES/FT→TPE01, ES/NC→AEC01, FR/FT→TPE05, IT/FT→TPE06
doc_prefixtextNoPrefijo del documento en TERCERO_0 de cabecera (ej: FPT, FES, FFR). Auto por pais+tipo
tercero_debtextNoCódigo tercero de la línea deudores. Auto: PT→CT-000028, ES→CT-000008, FR→CT-000040
vat_codetextNoCódigo VAT Sage. Auto: PT→PT023, ES→SP001, FR→FR020, IT→IT022
canaltextNoCanal de venta para analitica CCE_1. Default: E-COMMERCE
delegacióntextNoCódigo delegación para analitica CCE_2. Default: 06
descripcióntextNoDescripción del asiento. Default: Ventas Ecomm DD/MM/YYYY con la fecha del documento
sage_usertextNoUsuario Sage para CREUSR_0 y UPDUSR_0. Default: ADMIN
PaisPlantaTipo FTTipo NCPrefijo FTCuenta deudoresCódigo VAT
PT22_PTTPE03AEC02FPT430150 / CT-000028PT023
ES21_ESTPE01AEC01FES430000 / CT-000008SP001
FR23_FRTPE05AEC05FFR430100 / CT-000040FR020
IT24_ITTPE06AEC06FIT310000IT022

Cada documento genera 3 líneas en YFACTERLIN:

LíneaTipo cuentaCuenta (PT)ImporteSigno FTSigno NC
1Deudores430150total_gross+1−1
2Ventas700050total_net−1+1
3IVA477000total_tax−1+1

Y 3 filas en YFACTERAN espejando cada línea con CCE_0=country_iso, CCE_1=canal, CCE_2=delegacion, CCE_3=tercero_deb.

Entrada esperada: la salida de HubfiscalStoreBillpt:

{
"success": true,
"hub_document_id": 12,
"entity_id": "6684429451477",
"order_number": "14522",
"country_iso": "PT",
"type": "FT",
"status": "completed",
"fiscal_provider": "billpt",
"fiscal_doc_id": "1042",
"fiscal_doc_number": "FT 2025/1042",
"total_net": 63.56,
"total_tax": 14.62,
"total_gross": 78.18,
"currency": "EUR",
"issued_at": "2026-04-20"
}
{
"success": true,
"idRegistro": 2047,
"sage_schema": "LIVE",
"planta": "22_PT",
"tipasiiento": "TPE03",
"doc_prefix": "FPT",
"country_iso": "PT",
"type": "FT",
"total_gross": 78.18,
"total_net": 63.56,
"total_tax": 14.62,
"fiscal_doc_number": "FT 2025/1042",
"fecha": "2026-04-20",
"message": "Documento Sage creado (ID: 2047) en LIVE.YFACTERCAB — FPT FT 2025/1042"
}
Shopify Webhook → HubfiscalStoreShopify (pending)
→ HubfiscalStoreBillpt (completed)
→ SageStoreFromHubfiscal ← graba en Sage X3
TablaDescripción
YFACTERCABCabecera del documento — TIPODOC=2, TIPASIIENTO, PLANTA, TERCERO (doc_prefix), fechas, referencia
YFACTERLINLíneas contables — 3 líneas por documento (deudores, ventas, IVA)
YFACTERANFilas analiticas — 3 filas con canal, delegación, pais, tercero
  • TIPODOC es siempre 2 (estilo e-commerce), siguiendo el patron del procedimiento EQZ_MigracionEcomm_Sage. Difiere del procedimiento de migración TP que usa TIPODOC=1.
  • INVTYP es siempre 0 y REGIVA esta siempre vacío, ya que Bill.pt gestiona el registro fiscal.
  • IDREGISTRO_0 se calcula como MAX(IDREGISTRO_0) + 1 dentro de la transacción — no se requiere objeto de secuencia.
  • Si total_tax no esta presente en la salida del Hub Fiscal se infiere como total_gross − total_net.