SW Shopware 6 Intermedio

DataFirefly Factur-X SW — Factura electrónica Shopware 6: guía completa

Instalación, configuración, Leitweg-ID, perfiles Factur-X / ZUGFeRD / XRechnung 3.0 y validación de facturas electrónicas EN 16931 en Shopware 6.5 a 6.7.

Actualizado Versión del módulo 1.0.0

Presentación

DfFacturX SW genera facturas electrónicas conformes a EN 16931 para Shopware 6.5, 6.6 y 6.7. Cada vez que se crea un documento de factura, el plugin construye un XML UN/CEFACT CII y, según el perfil elegido, lo incrusta en el PDF de factura (Factur-X / ZUGFeRD) o lo entrega como archivo autónomo (XRechnung 3.0 para el B2G alemán).

  • Factur-X / ZUGFeRD EN 16931 — perfil recomendado para B2B: el PDF que descarga su cliente es la factura electrónica híbrida.
  • Factur-X BASIC — perfil ligero, para destinatarios que no exigen el conjunto de datos EN 16931 completo.
  • XRechnung 3.0 — XML autónomo en sintaxis CII para facturar a las administraciones alemanas, con Leitweg-ID obligatorio.

Instalación

  1. Copie la carpeta del plugin en custom/plugins/DfFacturX (o suba el ZIP desde el admin, Extensiones y Mis extensiones).
  2. Ejecute:
bin/console plugin:refresh
bin/console plugin:install --activate DfFacturX
bin/console cache:clear

La activación instala el conjunto de campos personalizados Factura electrónica (DfFacturX) con el campo df_facturx_buyer_reference en cliente y pedido. Ahí se introduce el Leitweg-ID (BT-10).

Configuración

Admin, Extensiones, DfFacturX, Configuración. Todos los ajustes se aplican por canal de venta.

General

  • Activar la generación — crea el XML con cada nuevo documento de factura.
  • Perfil — Factur-X EN 16931, Factur-X BASIC o XRechnung 3.0.
  • Incrustar el XML en el PDF — para los perfiles Factur-X; el medio del documento se sustituye por el PDF híbrido.
  • Adjuntar el XML a los correos — añade factur-x.xml (o numero-xrechnung.xml) a los correos de pedido.
  • Solo B2B — genera únicamente si el pedido lleva empresa o número de IVA.

Vendedor

Razón social, calle, código postal, ciudad, país (ISO-2), número de IVA (BT-31), número fiscal (BT-32), correo (BT-34), teléfono y persona de contacto (BG-6). El correo y el contacto son exigidos por XRechnung.

Campos mínimos del vendedor: nombre, calle, código postal, ciudad, país, más el número de IVA o el número fiscal (regla BR-CO-26). Sin ellos, la generación falla con un error explícito en los logs.

Pago

IBAN y BIC (transferencia SEPA, código 58), texto de condiciones de pago (BT-20) y días de vencimiento (BT-9). Sin IBAN, el medio de pago se declara como código 1 (no definido).

Gestión del IVA

Para los tipos al 0 %, el modo Automático aplica: K entrega intracomunitaria (comprador con IVA en otro país UE), G exportación fuera de la UE, Z en el resto. Puede forzar una categoría fija (Z, E, K, G) y personalizar el motivo de exención (BT-120).

XRechnung

Nombre técnico del campo personalizado con la referencia del comprador (por defecto df_facturx_buyer_reference) y valor de respaldo si no hay campo relleno.

Leitweg-ID y referencia del comprador (BT-10)

Introduzca el Leitweg-ID una vez en la ficha del cliente (pestaña de campos personalizados): se reutilizará en todas sus facturas. Para un caso puntual, rellénelo directamente en el pedido — el valor del pedido prevalece sobre el del cliente, que prevalece sobre el de respaldo.

Con el perfil XRechnung, si no se encuentra ninguna referencia del comprador, el plugin se niega a generar un XML inválido y registra un error. Corrija el dato y relance con df:facturx:generate --force.

Funcionamiento

  1. Al crearse el documento de factura (admin, Flow Builder o API), el plugin carga el pedido en su versión de pedido exacta.
  2. El XML CII se construye y se guarda en los campos personalizados del documento (df_facturx_xml, df_facturx_profile, df_facturx_generated_at).
  3. Con un perfil Factur-X, el XML se incrusta en el PDF mediante actualización incremental: archivo factur-x.xml adjunto, metadatos XMP PDF A-3 y esquema de extensión Factur-X. El medio del documento se sustituye in situ.
  4. Si la opción está activa, el XML se adjunta a los correos de pedido.

Con Flow Builder, añada la acción de generación de factura a su flujo de pedido: la factura electrónica sigue automáticamente, sin pasos adicionales.

Por diseño, un error de factura electrónica nunca bloquea la creación del documento: el incidente se registra y la factura PDF clásica sigue disponible.

Modelo contable EN 16931

  • Modelo neto — los pedidos con IVA incluido se convierten mediante los impuestos calculados de Shopware.
  • Promociones — convertidas en descuentos a nivel de documento (BG-20), una entrada por tipo de IVA, porque la norma prohíbe las líneas negativas (BR-27).
  • Gastos de envío — declarados como cargos a nivel de documento (BG-21), una entrada por tipo.
  • RoundingAmount (BT-114) — absorbe cualquier desviación de redondeo: el GrandTotal del XML es estrictamente igual al total del pedido en Shopware.
  • Pago SEPA — transferencia código 58 con IBAN/BIC, vencimiento calculado desde la fecha de factura.

Comando de consola

# Regenerar la factura electrónica de la última factura de un pedido
bin/console df:facturx:generate 10042 --force

# Exportar el XML a un archivo (para un validador)
bin/console df:facturx:generate 10042 --output=/tmp/10042.xml

# Forzar un perfil puntualmente (implica la regeneración)
bin/console df:facturx:generate 10042 --profile=xrechnung-30

Lista de comprobación antes de producción

  1. Cree pedidos de prueba que cubran sus casos reales: canal con IVA incluido y canal neto, promoción, gastos de envío, venta intracomunitaria con número de IVA, exportación fuera de la UE.
  2. Genere la factura de cada uno y exporte el XML con --output.
  3. Valide: validador KOSIT para XRechnung, Mustang para Factur-X / ZUGFeRD.
  4. Abra el PDF híbrido en Adobe Acrobat y compruebe la presencia del adjunto factur-x.xml.

Solución de problemas

  • No se genera ningún XML — compruebe que el plugin está activo para el canal de venta, que el tipo de documento es factura y que el modo solo B2B no filtra el pedido. Consulte los logs (var/log).
  • Error «Missing seller configuration» — complete la tarjeta Vendedor (campos mínimos indicados arriba).
  • Aviso «PDF embedding skipped» — la estructura del PDF no permitió la incrustación; el XML sigue disponible como adjunto de correo y por consola. Caso típico: PDF generado por un motor de terceros.
  • XRechnung rechazado — falta la referencia del comprador: rellene el campo personalizado o el valor de respaldo, y luego --force.
  • Regeneración tras cambios de configuración — los documentos ya procesados no se reprocesan automáticamente; use df:facturx:generate --force.

Limitaciones conocidas y hoja de ruta

  • Versión 1.0: solo facturas (código 380). Abonos (381) y facturas rectificativas (384) previstos para la 1.1.
  • La conformidad estricta PDF/A-3B depende también de propiedades del PDF de origen producido por el motor dompdf de Shopware (fuentes incrustadas, output intent). Los destinatarios y las herramientas contables explotan el XML incrustado en todos los casos; para una exigencia estricta PDF/A-3B, use el perfil XRechnung o el adjunto XML.
  • Una sola línea de IVA por línea de pedido (comportamiento estándar de Shopware).
¿Te ha resultado útil esta página?

¿Sigues atascado? Contacta con soporte