Tax Rules
El módulo de reglas de impuestos permite automatizar la asignación de códigos GTU, códigos JPK_V7, clases de impuestos de WooCommerce, categorías/etiquetas y meta personalizados a los productos mediante reglas de condición/acción. Se ejecuta al guardar un producto, mediante un cron programado y de forma manual (Dry Run + Run Now).
Cómo funciona
Section titled “Cómo funciona”- Crea una regla: nombre, modo de coincidencia (all/any), condiciones, acciones, disparadores, prioridad.
- El motor evalúa las condiciones contra cada producto y aplica las acciones cuando la regla coincide.
- Cada aplicación de una regla se registra en el registro de auditoría (quién/qué/cuándo, dry run o en vivo).
- Disparadores:
- Al guardar el producto - la regla se ejecuta después de crear o actualizar un producto.
- Diario - la regla se ejecuta en el cron nocturno contra todo el catálogo.
- Semanal - se ejecuta una vez por semana (WP-Cron).
- Mensual - se ejecuta una vez cada 30 días (WP-Cron).
- Manual - la regla se ejecuta solo cuando haces clic en Run / Dry Run en el administrador.
Configuración
Section titled “Configuración”Abre WooCommerce > Tax Rules y haz clic en Añadir regla.
Campos de la regla
Section titled “Campos de la regla”| Campo | Descripción |
|---|---|
| Nombre | Etiqueta legible para las personas (p. ej. “Books -> GTU_12”). |
| Grupo (opcional) | Etiqueta de texto libre usada para filtrar en la lista. |
| Activada | Desactiva una regla sin eliminarla. |
| Modo de coincidencia | all - todas las condiciones deben coincidir, any - al menos una debe coincidir. |
| Disparadores | Cuándo se ejecuta la regla (guardar / diario / semanal / mensual / manual). |
| Prioridad | Orden de ejecución, ascendente (predeterminado 10). |
Condiciones
Section titled “Condiciones”Formato: field | operator | value | key (último campo opcional).
Campos: title, sku, price, regular_price, stock_quantity, stock_status, category, tag, type, attribute, tax_class, meta_field, gtu_code, jpk_v7_code, taxonomy.
Operadores: equals, not_equals, contains, not_contains, starts_with, ends_with, gt, gte, lt, lte, in, not_in, is_empty, is_not_empty.
El campo taxonomy acepta cualquier taxonomía personalizada; pon el slug de la taxonomía en key y una lista de IDs de términos separados por comas en value:
taxonomy | in | 12,34,56 | product_brandEjemplos:
title | contains | bookprice | gte | 100category | in | 42,56,78meta_field | equals | yes | _polski_tabletAcciones
Section titled “Acciones”Formato: action_type | value.
| Acción | Descripción | Ejemplo |
|---|---|---|
set_gtu_code | Asigna un código GTU | set_gtu_code | GTU_06 |
remove_gtu_code | Elimina el código GTU | remove_gtu_code | |
set_jpk_v7_code | Asigna un código JPK_V7 | set_jpk_v7_code | GTU_12 |
set_tax_class | Establece una clase de impuestos de WooCommerce | set_tax_class | reduced-rate |
add_category / remove_category | Añade o elimina una categoría | add_category | 42 |
add_tag / remove_tag | Añade o elimina una etiqueta | add_tag | 77 |
set_meta_field | Establece un campo meta | set_meta_field | _polski_custom:flag |
mark_receipt_with_nip | Marca el producto como que requiere ticket con NIP | mark_receipt_with_nip | 1 |
Dry run y registro de auditoría
Section titled “Dry run y registro de auditoría”Cada regla tiene las acciones Dry run (vista previa sin escribir) y Run now (aplicar a todo el catálogo). La pestaña del registro de auditoría muestra las últimas 200 aplicaciones con marca de tiempo, regla, producto, indicador de coincidencia, indicador de dry run y acciones aplicadas.
Smart Pickers (ayudante del editor)
Section titled “Smart Pickers (ayudante del editor)”En la parte superior del editor de reglas, el panel Insert helper permite añadir líneas de condición/acción sin buscar los IDs a mano:
- Categoría - todos los términos de
product_cat(Select2). Los botones añadencategory | in | <ID>oadd_category | <ID>. - Etiqueta - lo mismo para
product_tag. - Clase de impuestos - lista de clases de impuestos de WooCommerce. Los botones añaden
set_tax_class | <slug>otax_class | equals | <slug>. - Código GTU - desplegable
GTU_01-GTU_13. Tres botones:set_gtu_code,set_jpk_v7_codeo la condicióngtu_code | equals | <CODE>.
El área de texto sigue siendo la fuente de la verdad - los pickers solo añaden líneas.
Grupos de reglas
Section titled “Grupos de reglas”Cada regla puede llevar una etiqueta de grupo opcional. Los grupos se usan únicamente para organizar y filtrar reglas en el administrador; no afectan a la ejecución.
Búsqueda y filtros
Section titled “Búsqueda y filtros”La lista de reglas admite búsqueda por nombre sin distinguir mayúsculas y minúsculas, filtro de estado (activada/desactivada), filtro de disparador y filtro de grupo (visible solo cuando existen grupos).
Importar y exportar reglas
Section titled “Importar y exportar reglas”La pestaña Import / export permite:
- Exportar todas las reglas como un archivo JSON portable (formato
polski.tax_rules, v1) para copia de seguridad o migración. - Importar un archivo JSON exportado previamente. Las importaciones siempre añaden reglas (nunca reemplazan por ID), de modo que puedes combinar de forma segura conjuntos de reglas de varias tiendas.
WP-CLI
Section titled “WP-CLI”Para catálogos grandes y automatización:
# Listar reglaswp polski tax-rules listwp polski tax-rules list --format=json
# Dry-run de la regla #3wp polski tax-rules run 3 --dry-run
# Aplicar la regla #3 con lotes de 100 elementoswp polski tax-rules run 3 --batch-size=100
# Exportar reglas a un archivowp polski tax-rules export --file=/tmp/rules.json
# Importar reglas desde un archivowp polski tax-rules import /tmp/rules.jsonAcción en lote en la lista de productos
Section titled “Acción en lote en la lista de productos”En la lista estándar de productos de WooCommerce (wp-admin/edit.php?post_type=product), el desplegable Bulk actions expone dos entradas:
- Apply tax rules - ejecuta todas las reglas activadas contra los productos seleccionados.
- Dry-run tax rules - informa de lo que cambiaría, sin escribir.
Tras la ejecución, un aviso del administrador muestra el número de productos procesados, las coincidencias de reglas y los cambios aplicados.
Integración
Section titled “Integración”Los códigos GTU y JPK_V7 asignados se almacenan como meta del producto y pueden ser consumidos por:
- el módulo de facturación (Faktura VAT PDF + KSeF)
- la exportación JPK_VAT
- las integraciones contables (wFirma, Fakturownia, iFirma)
Límites y rendimiento
Section titled “Límites y rendimiento”- El cron diario procesa el catálogo en lotes de 50 productos.
- El registro de auditoría está limitado a 10.000 filas; las entradas más antiguas se recortan automáticamente.
- El motor protege contra la recursión: una regla no se vuelve a disparar durante su propio guardado interno del producto.