El escenario típico para esta situación es el de una tienda online que vende productos digitales (con los productos físicos la cosa cambia) y orientada al público internacional, específicamente a compradores dentro y fuera de Europa. En una situación así, un cliente pagará un precio diferente en función del país en que se encuentre.
En esta entrada voy a explicarte cómo configurar WooCommerce para que, en lugar de ser así, todos los clientes paguen el mismo precio, independientemente de si se les aplican o no impuestos.
Tabla de contenidos
Mismos precios con o sin IVA
En una situación como la descrita arriba el precio final del producto sería diferente en función de la ubicación del comprador. En principio al cliente le da igual decirte que está en España o en Argentina (no hay envío, sólo descarga de archivos), y sin embargo si compra desde España (o desde cualquier país europeo) tendrá que pagar el IVA.
La tendencia actual es, por tanto, ofrecer el mismo precio precio a todos los compradores, independientemente de dónde estén y de los impuestos que tengan que pagar. Eso significa que el vendedor asume el IVA si la compra se produce desde un país europeo, pero a cambio el sistema es más “justo”.
Cómo calcula WooCommerce el precio en función de los impuestos
Esto no tiene mucho secreto: si un cliente no tiene que pagar un impuesto, WooCommerce no lo va a cobrar. Da igual que hayas configurado WooCommerce para introducir los precios con o sin impuestos (WooCommerce > Ajustes > Impuesto, Sí, voy a introducir los precios con impuestos incluidos o No, introduciré los precios sin impuestos).
Si los introduces con impuestos incluidos y el comprador se encuentra en un país en el que no le corresponde pagar el impuesto, WooCommerce va a descontarlo del precio. Si es al contrario (introduces los precios sin impuestos y el cliente se encuentra en un país gravado) WooCommerce sumará el impuesto al precio del producto.
Así que la situación es un poco extraña aquí. Imagínate que estás a punto de comprar un producto digital (un vídeo, audio, una foto, un ebook, un plugin…) y que según lo que elijas en el selector del checkout España o México te va a costar 10€ o 12,10€…
Lo mismo aplica, dentro de España, para las comunidades exentas de IVA: bastaría introducir Ceuta o Las Palmas como provincia de residencia para ahorrarse el IVA. Total, no te tienen que enviar nada a casa…
Cobrar el mismo precio, independientemente de los impuestos
Por eso, como decía antes, la tendencia actual es cobrar el mismo precio a todos los usuarios, asumiendo el administrador de la tienda el IVA (o el impuesto de que se trate, digo IVA porque es el caso habitual). El margen disminuye en las compras desde dentro de la UE (o, en general, desde los países gravados) pero, al fin y al cabo, el coste de producción es cero, ya que hablamos de productos digitales.
Así que se trataría de hacer lo siguiente:
- Se configuran los impuestos que correspondan a cada país y/o región
- Se configura WooCommerce para introducir los precios con impuestos incluidos (de nuevo: WooCommerce > Ajustes > Impuesto > Sí, voy a introducir los precios con impuestos incluidos)
- Se crean los productos introduciendo el precio final, que será el precio que va a pagar todo el mundo, le corresponda o no pagar impuestos
¿Estás construyendo tu tienda online o eres implementador WordPress?
¿Necesitas plugins de calidad y con soporte para implementar funcionalidades concretas?
Consigue todos los plugins a la venta en la sección de plugins de esta web y todos los que siga añadiendo. Acceso a los 96 plugins (y subiendo) con soporte directo del desarrollador, actualizaciones y uso ilimitado: úsalos en tantas webs como lo necesites.
El ajuste de precios de ubicación no base de WooCommerce
El nombre parece bastante críptico, pero se trata simplemente de ajustar el precio cuando la ubicación del cliente no es la de la base de la tienda. Es decir, el precio del producto va a cambiar en función de si al usuario le corresponde o no pagar impuestos.
Si un producto vale 10€ (recordemos, el precio se ha introducido incluyendo impuestos) y el cliente está fuera de la UE (o en Canarias, Ceuta o Melilla), éste va a pagar 10€ por el producto y no pagará el IVA. Pero si el cliente está en cualquier otra provincia de España pagará 10€ incluyendo 1,74€ de IVA, es decir, 8,26€ por el producto y 1,74€ de IVA.
Diferentes IVAs, mismo precio
Por supuesto, esto también es válido para clientes que se encuentran en países a los que se aplica el impuesto pero con diferente porcentaje, por ejemplo para clientes que compran desde diferentes países de la Unión Europea, con diferente tipo de IVA. Siguiendo con el mismo ejemplo de antes, lo que diferentes clientes pagarían por el sería:
- Si está en España (21% IVA): 8,26€ por el producto + 1,74€ de IVA = 10€
- Si está en Alemania (19% IVA): 8,40€ por el producto + 1,60€ de IVA = 10€
- Si está en un país no comunitario (sin IVA): 10€ por el producto
Activar los mismos precios para todo el mundo en WooCommerce
Te sorprenderá saber que WooCommerce incluye esta posibilidad desde, nada menos, que su versión 2.5 (en el momento de escribir esto la versión actual es WooCommerce 3.6); y, sin embargo, estoy seguro de que no has visto la opción por ningún sitio. No la busques, no está.
Esta característica se publicó como experimental y a día de hoy aún se considera así, aunque tengo que decir que la he utilizado con éxito y sin absolutamente ningún problema en un par de tiendas en producción. Pero claro, no se puede seleccionar, hay que activarla mediante código.
Para ello WooCommerce introdujo el filtro woocommerce_adjust_non_base_location_prices, que es el que calcula el precio final tras, como explicaba más arriba, añadir o no, o descontar o no (según corresponda), los impuestos. De lo que se trata es de que no lo haga, es decir, que no ajuste el precio final, sino que éste sea el que se ha introducido en el producto, haya o no haya impuestos que aplicar.
El código para ello es muy sencillo. Basta con retornar un false al filtro anteriormente mencionado, woocommerce_adjust_non_base_location_prices.
Activar mismos precios finales en WooCommerce mediante un plugin
Si eres de los que tiene aversión al código, o no te aclaras demasiado, puedes activar esta funcionalidad de WooCommerce utilizando este plugin. No necesita configuración, ya que de lo que se trata no es de realizar una funcionalidad sino de activar una característica que está incluida (aunque desactivada por defecto) en WooCommerce.
Vídeo: Mismos precios para todos, independientemente de los impuestos
En este vídeo puedes ver el resultado de todo esto, da igual si lo haces por código que utilizando el plugin:
José dice
Muchas gracias por el aporte,
He aplicado el código y va de lujo, no comprendo porque no incluye esto Woocommerce de serie en la configuración.
Gracias de verdad ! me ha solucionado un problema gordo.
Un saludo
Ariadna dice
Hola, no encuentro el plugin. ¿Aún está? Gracias
Enrique J. Ros dice
Hola Ariadna
Sí, lo tienes aquí.
Un saludo
Miquel Angel dice
Hola
he llegado aqui y esta muy interesante pero a mis los precios me salen siempre (sin la frase precio del IVA 5,07) y he configurado impuestos etc,,, como se hace para que salga el precio o sea
100 euros (IVa 21 euros)
gracias
Elena dice
Buenos días Enrique!! Por casualidad sabes si en Woocommerce hay opción de que se le pueda cobrar a un cliente el mismo producto con o sin iva? Como el IVA se le asigna al producto, ahí esta mi duda de si a X cliente (por ejemplo, es de fuera de la UE) no se le cobra, si se puede restar. Mil gracias por tu ayuda 🙂
Enrique J. Ros dice
Hola Elena
Para eso tienes que tener correctamente configurados los impuestos por países.
Un saludo
Esteban Aquino dice
Existe alguna forma que haga lo mismo con el envio?
ya qe en el caso del envio lo modifica aun con esto activado de todas formas.
Sergio dice
Hola Enrique.
Me encuentro con el problema que al aplicar ese cambio, todo funciona bien hasta el momento en que se escoge un país extracomunitario donde la tasa de impuesto es 0. Y lo qu hace es no aplicar impuesto, pero la suma es como si lo llevase. Aunque no muestra que hayan.
¿Alguna solución? Sin el cambio siempre ha ido bien, pero al aplicar OSS, quiero que los productos tengan el mismo precio pero la base imponible se adecue al impuesto. Y cuando la tasa es 0, cobrar la base imponible española.
Saludos.