Recargo de Equivalencia en WooCommerce

LucusHost, el mejor hosting

En España hay un tipo adicional de impuesto que es el Recargo de equivalencia. En este post, no voy a explicar en qué consiste, sus tasas… Mayormente porque no entiendo ni me dedico a la fiscalidad. Va a ser a nivel técnico como añadirlo en nuestra tienda online con WooCommerce en los diferentes escenarios en los que me lo han pedido.

Este tutorial también te puede servir para otros impuestos que tengas en tu país, cómo combinarlos y crear esos roles. Para el ejemplo, aplicaremos los dos impuestos en cada sección configuraremos el IVA(21%) y el Recargo de Equivalencia(5,2%).

Hay diferentes formas dependiendo de cómo se quiera aplicar, pero antes te recomiendo que sepas cómo configurar los impuestos. Te dejo la documentación oficial o mi vídeotutorial.

Aplicar los dos impuestos a todos los usuarios

Si por defecto, vendes a todos los usuarios con recargo de equivalencia es la parte más sencilla. Ahora bien, antes de configurar los impuestos tendrás que tener en cuenta la configuración de tus impuestos, si estás poniendo los precios en la web sin impuestos o con impuestos:

Opción recomendable sería sin impuestos para que todo funcionase bien.. En este caso no tendrás problemas en aplicarlo correctamente. Puesto que los impuestos se aplicarán sobre la base del producto. Si el producto vale 100€ sin impuestos, serán 21€ de IVA y 5,2€ de Recargo de equivalencia. En la pestaña de impuestos lo configuraríamos de la siguiente forma:

Importante:

  • Marcar el código de país donde aplicar los impuestos y el código de provincia si fuese necesario.
  • Establecer el nombre para mostrarlo al cliente desglosado y en las facturas.
  • Introducir prioridades diferentes, si es la misma, solo se aplicará un impuesto.

Teniendo en cuenta lo anterior un producto de 100€ de base, se le aplicarán directamente los impuestos:

woocommerce recargo equivalencia

Sería de la misma forma con 3 impuestos o los que tengas en tu país.

Si tienes los precios con impuestos incluidos funcionaría de la misma forma, eso sí, ten en cuenta que el precio que pongas deberá llevar ya aplicado el RE y el IVA. Es decir, los dos impuestos. Si los tenías antes solo con un impuesto, te recomiendo pasar todos los precios a sin impuestos. Lo puedes hacer muy fácil con esta herramienta.

Solo cobrar ese impuesto a un rol de usuario

Esta opción, es más avanzada. Si tienes clientes que quieren comprar mediante recambio de equivalencia y no lo tienes por defecto en tu web, habría que crear un rol para ellos y modificarlo para que compren con el recargo de equivalencia. Lo primero será crear un rol para ellos, vamos a usar el plugin User Role Editor, disponible en el repositorio de WordPress o en este enlace.

Una vez instalado y activado, desde el menú de WordPress de usuarios entraremos a la opción de User Role Editor. Dentro en la columna de la derecha como vemos en la imagen añadimos un perfil:

rol de usuario aplicando impuesto woocommerce

En esta ventana deberemos nombrar un ID y un nombre del perfil. Si lo hacéis igual que yo en la imagen no tendréis que cambiar el código, si lo hacéis diferente tendréis que sustituir el ID. Por último marcamos que a nivel de permisos sea una copia del usuario Customer, que tiene los permisos de un cliente normal:

impuesto recargo equivalencia woocommerce rol usuario

A continuación tenemos que crear un nuevo impuesto para estos usuarios como hemos hecho anteriormente, en este caso lo llamo «Recargo Equivalencia»:

Una vez creado el rol de usuario en WordPress y el impuesto para esos usuarios, tenemos que indicarle que se le aplique unos impuestos diferentes. Para ello, vamos a añadir este código en el functions.php de nuestro Child Theme o bien en nuestro plugin de funcionalidades como explico aquí.

El código lo tendremos que modificar si el ID del rol es diferente, en este caso mi ID: equivalenciarecargo. Por otro lado tenemos que sustituir el nombre de la clase del impuesto, en mi caso: Recargo Equivalencia.

function apply_custom_tax_class_for_specific_user_role( $tax_class, $product ) {
    if ( is_user_logged_in() ) {
        $user = wp_get_current_user();
        if ( in_array( 'equivalenciarecargo', (array) $user->roles ) ) {
            // Aplica la clase de impuesto personalizada a productos simples y sus variaciones
            return 'Recargoeq'; // El nombre de tu clase de impuestos personalizada
        }
    }

    return $tax_class;
}
add_filter( 'woocommerce_product_get_tax_class', 'apply_custom_tax_class_for_specific_user_role', 10, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'apply_custom_tax_class_for_specific_user_role', 10, 2 );

Una vez aplicado todo, asignamos un usuario a ese rol y probamos a ver si se le cobra el impuesto extra que hemos metido. Espero que os funcione, si no repasad en vídeo del post a ver si os ha faltado algún paso.

Mantener el impuesto o el rol de usuario del cliente al editar el pedido

Un error común al aplicar esta configuración personalizada al rol, es que si editas como administrador un pedido realizado con un rol diferente, el impuesto a ese pedido y cliente se dejará de aplicar, ya que, por defecto WooCommerce aplicará la configuración del usuario que lo está editando. Es por esto, que si queremos editar el pedido manteniendo el rol de usuario anterior que hemos creado, deberemos añadir el siguiente código al anterior:

add_filter('woocommerce_order_item_get_tax_class', 'mantener_clase_impuesto_al_editar_pedido', 10, 2);
function mantener_clase_impuesto_al_editar_pedido($tax_class, $item) {
    // Obtén el rol de usuario del cliente
    $order = $item->get_order();
    $user = $order->get_user();
    
    if ($user && in_array('equivalenciarecargo', $user->roles)) {
        // Retorna la clase de impuesto correspondiente a ese rol personalizado
        return 'Recargoeq'; // Sustituye con el nombre de la clase de impuesto que debería aplicarse
    }
    
    return $tax_class;
}

Recuerda que lo puedes modificar con tu id de rol de usuario y el nombre asociado al impuesto.

Conclusiones

Si me preguntáis como no hay plugin para todo esto, no lo he encontrado o a los meses esto dejó de funcionar, es por eso que asignarlo a un rol de usuario puede parecer un poco tedioso pero merece la pena. Recordaros que esto lo he hecho con este impuesto pero os sirve para cualquier impuesto doble o triple que queráis aplicar.

Recordaros que para cualquier consulta técnica tenéis mis consultorías o bien mi servicio de desarrollo de tiendas online.

Espero que os haya servido, cualquier duda os leo en comentarios.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
mailerlite diegol

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial? Mándame un correo y te resuelvo todas las dudas!


Ver servicios Curso de WooCommerce

También puedes realizar una donacion para seguir apoyando la salida de nuevos tutoriales y actualizaciones

mailerlite diegol

Reader Interactions

comentarios

  1. Manel says

    ¡Genial! ¡He estado peleando con esto un par de horas hasta que me he dado cuenta de que mi error era que solo le aplicaba el impuesto al producto y no a las variaciones!

    ¡Al ver el tutorial me he dado cuenta! Muchas gracias Diego! Un saludo

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *