Publicada en

El Recargo de Equivalencia en WooCommerce

WooCommerce-RE-destacada

En una tienda WooCommerce puede suceder que el Cliente, tanto en la venta de Productos como de Servicios, sea un Profesional, y que solicite la aplicación del Recargo de Equivalencia (RE) en factura. Además del IVA que corresponda al Producto o Servicio, en este caso, deberá aplicarse el RE que corresponda al tipo de IVA, y de forma desglosada.

En este articulo propondré una solución simple basada en Roles (Grupos de Clientes) para añadir el Recargo de Equivalencia a los Clientes en WooCommerce.

Impuestos en WooCommerce: tipos de IVA y Recargo de Equivalencia

Como es sabido, el esquema de aplicación de impuestos en WooCommerce es territorial: por País, Provincia, Código postal o Ciudad. Sin embargo el impuesto Recargo de Eqivalencia se aplica a Clientes de un determinado tipo. Pues bien, haremos que sólo los Clientes que tengan un determinado rol se les aplique el Recargo de Eqivalencia.

WordPress no dispone de ninguna utilidad para crear / modificar Roles de Usuario. Por ello, si queremos un Rol específico para Clientes con Recargo de Eqivalencia, necesitaremos algún plugin para este fin (por ejemplo: Capability Manager Enhanced). Así, supongamos que creamos el Rol: “Cliente con RE”.

A continuación creamos los Impuestos, en WooCommerce -> Ajustes -> Impuestos:

woocommerce-impuestos

1.- IVA Normal

woocommerce-impuestos-IVA-normal

2.- IVA Normal con RE

woocommerce-impuestos-IVA-Normal-con-Recargo-Equivalencia

Ahora es el momento de poner todo junto e insertar un poco de código. Como los detalles de la implementación pueden dependader de cada tienda WooCommerce en particular, y para que se entienda bien el concepto, lo escribiré pseudo-código:

function wc_recargo_de_equivalencia( $tax_class, $product ) {
Si ( el Usuario actualmente logueado tiene el rol “Cliente con RE” )             {

Si ( $tax_class == ‘IVA Normal’ )
entonces $tax_class = ‘IVA Normal con RE’;

}

return $tax_class;

}

Esta función se activa con (¡Esto sí es PHP de verdad!):

add_filter( ‘woocommerce_product_tax_class’, ‘wc_recargo_de_equivalencia’, 1, 2 );

En Woocommerce 3.x será:

add_filter( ‘woocommerce_product__get_tax_class’, ‘wc_recargo_de_equivalencia’, 1, 2 );

add_filter( ‘woocommerce_product_variation_get_tax_class’, ‘wc_recargo_de_equivalencia’, 1, 2 );

El código simplemente comprueba si el rol del usuario es susceptible de aplicar RE. Si es así, reemplaza el impuesto ‘IVA Normal’ por ‘IVA Normal con RE’, que es el mismo, pero con el RE añadido.

Naturalmente, si el rol del usuario no es susceptible de aplicar Recargo de Eqivalencia, el código de la función anterior no hace nada, es decir, devuelve la misma clase de impuesto que recibió.

Hay que tener en cuenta que en una implementación real, y si es necesario, a los pasos anteriores hay que añadir los pasos equivalentes para los “IVA Reducido” y “IVA Super-Reducido”.

Conclusión

WooCommerce calcula los impuestos en función de Zonas Geográficas, y por tanto no es posible hacer ninguna configuración para el Recargo de Equivalencia. En este articulo se describe un procedimiemto sencillo basado en Roles para añadir el Recargo de Eqivalencia a los Clientes que lo requieran.

Estas ideas se han plasmado en un plugin “WooCommerce Recargo de Equivalencia”, que puede obtenerse desde el repositorio de WordPress. Desde la página de administración del plugin se seleccionan los Impuestos y los Roles que están sujetos a Recargo de Equivalencia.

woocommerce-impuestos-Rol-cliente-Recargo-Equivalencia