Dentro de un par de días cambiaremos el IVA del 18% al 21% y todos los que tenemos tiendas online tendremos que cambiarlo a las 00:00 no vaya a ser que nos entre alguna venta y nos la líe. Os voy a contar 3 formas distintas de cambiar el IVA de vuestra tienda.
1.- Desde el admin de Prestashop
Hay que ir a la pestaña de pagos -> Impuestos y editando el impuesto correspondiente se cambia. ¡Acordaros de cambiar el texto en todos los idiomas que tenéis activado!
2.- Desde Mysql
Para usar esta opción hay que saber usuario y contraseña de mysql y el prefijo de las tablas. Como prefijo he utilizo el que pone por defecto prestashop ps_
Desde mysql, phpmyadmin o similar ejecutar las siguientes ordenes
USE nombre_db; UPDATE ps_tax_lang SET name=REPLACE(name,'18','21') WHERE id_tax=(SELECT id_tax FROM ps_tax WHERE rate=18); UPDATE ps_tax SET rate=21 WHERE rate=18; |
Desde bash los mas cómodo es hacer algo así:
mysql -u usuario_db -pclave_db base_de_datos_prestashop -e "update ps_tax_lang set name=replace(name,'18','21') where id_tax=(select id_tax from ps_tax where rate=18);" mysql -u usuario_db -pclave_db base_de_datos_prestashop -e "update ps_tax set rate=21 where rate=18;" |
También lo puedes automatizar en el cron y olvidarte del cambio. 3.- Con un pequeño script en php que puedes automatizar o ejecutar desde cualquier equipo. Para poder utilizarlo debes de conocer los mismos datos que en la opción anterior y configurar el script con ellos.
<?php $host = 'localhost'; $user = 'usuario'; $pass = 'password'; $database = 'db_prestashop'; $prefijo = 'ps_'; $sql1 = "update ".$prefijo."tax_lang set name=replace(name,'18','21') where id_tax=(select id_tax from ".$prefijo."tax where rate=18);"; $sql2 = "update ".$prefijo."tax set rate=21 where rate=18;"; $connect = @mysql_connect ( $host, $user, $pass ) ; echo "<h1>Proceso de cambio de IVA en la base de datos de prestashop</h1>"; if ( $connect ) { mysql_select_db ( $database ); if ( @mysql_query ($sql1) ) { echo '<p>Paso 1 OK</p>'; } else { die ( mysql_error() ); } if ( @mysql_query ($sql2) ) { echo '<p>Paso 2 OK</p>'; } else { die ( mysql_error() ); } } else { trigger_error ( mysql_error(), E_USER_ERROR ); } ?> |
Si lo que quieres hacer es no repercutir la subida a tus clientes lo que hay que hacer es reducir el precio de los productos. La forma mas sencilla de reducir el precio de todos los productos es a través de una consulta SQL:
UPDATE ps_product SET price=price*0.975206611570248; |
Espero que os sea útil.