Integración Shopify → SAP Business One (snobbycl y on-chile)
Pipeline de integración de órdenes de Shopify a SAP Service Layer:
Invoice de reserva, pago con tarjeta o transferencia por transacción,
solicitud de traslado, traslado de stock y entrega.
- Invoice igual a lo cobrado; fulfillments limitados a lo facturado
- Estados terminales integrated, timeout, ignored y cancelled
- Idempotencia contra SAP: adopta documentos existentes en vez de duplicar
- Reintentos de red en el cliente de Shopify
- Secretos fuera de los JSON de tienda (${VARIABLE} resuelta desde .env)
- Herramientas de consulta, integración puntual y carga de pruebas
- Documentación en docs/ (flujo, casos especiales, mapeo, configuración)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
901dd8763d
47 files changed
+4709
No files matched your search
@@ -0,0 +1,47 @@
|
||||
def _limpiar(rut: str) -> str:
|
||||
return rut.upper().replace(".", "").replace("-", "").strip()
|
||||
|
||||
|
||||
def _calcular_dv(numero: str) -> str:
|
||||
suma = 0
|
||||
multiplicador = 2
|
||||
for digito in reversed(numero):
|
||||
suma += int(digito) * multiplicador
|
||||
multiplicador = multiplicador + 1 if multiplicador < 7 else 2
|
||||
|
||||
resto = 11 - (suma % 11)
|
||||
if resto == 11:
|
||||
return "0"
|
||||
if resto == 10:
|
||||
return "K"
|
||||
return str(resto)
|
||||
|
||||
|
||||
def validar_rut(rut: str) -> bool:
|
||||
"""
|
||||
Valida un RUT chileno usando el dígito verificador módulo 11.
|
||||
Acepta con o sin puntos/guión: "12345678-5", "12.345.678-5", "123456785".
|
||||
"""
|
||||
limpio = _limpiar(rut)
|
||||
if len(limpio) < 2:
|
||||
return False
|
||||
|
||||
numero, dv = limpio[:-1], limpio[-1]
|
||||
if not numero.isdigit():
|
||||
return False
|
||||
|
||||
return _calcular_dv(numero) == dv
|
||||
|
||||
|
||||
def normalizar_rut(rut: str) -> str:
|
||||
"""Devuelve el RUT sin puntos ni guión, en mayúsculas (ej. "123456785")."""
|
||||
return _limpiar(rut)
|
||||
|
||||
|
||||
def formatear_rut(rut: str) -> str:
|
||||
"""
|
||||
Devuelve el RUT en el formato que usa SAP para FederalTaxID:
|
||||
"NNNNNNNN-D" (sin puntos, con guión antes del dígito verificador).
|
||||
"""
|
||||
limpio = _limpiar(rut)
|
||||
return f"{limpio[:-1]}-{limpio[-1]}"
|
||||
Reference in new issue
Block a user