Jump to content

Alguien sabe como se puede ver el iva en la cesta?


silix

Recommended Posts

Hola tecniloco y gracias.

He visto el intento del colega alemán, pero ademas de no entender nada incluso con la traducción de google no entiendo que se pueda vender así, en la cesta debe detallarse el iva, lo he consultado con mi abogado y en principio es ilegal aunque la factura y albarán se detalle.

He visto muchas tiendas en internet con prestashop y todas sin esta info en la cesta y no entiendo como los desarrolladores de este cms no se han dado cuenta de ello.

No he lanzado mi tienda aún pero bloquearé el envío de albaranes y factura y los tendré que enviar a mano por email o con el pedido.
Salu2

Link to comment
Share on other sites

  • 9 months later...

Hola,
¿como habéis solucionado este tema? en mi factura tampoco lo desglosa y me parece que da igual como lo tengas que siempre funciona con impuesto incluido. Tengo la versión 1.2.5
En el sistema antiguo en el carrito tampoco sale el impuesto (aparece con o sin IVA según tengas configurada la tienda, pero lo desglosa cuando vas a confirma y pagar el pedido.

Link to comment
Share on other sites

  • 2 months later...

Manual para añadir linea de impuestos en Prestashop

El código de comercio exige que se desglose el IVA en las lineas de detalle.

Puede haber 2 maneras diferentes de realizar dicho desglose

Linea total de impuestos con un mismo tipo impositivo, para las tiendas que vendan todos los productos con un solo tipo impositivo.

Lineas totales de impuestos o desgloses por tipo impositivo, para las tiendas que vendan productos con distintos tipos impositivos.

A continuación voy a explicar como modificar prestashop para que muestre el total del IVA de una manera que nos valga tanto para la utilización de un solo tipo como para varios.

1) Abrimos el archivo class/Cart.php y justo debajo de la siguientes lineas:

    public function getLastProduct()
   {
       $sql = '
           SELECT `id_product`, `id_product_attribute`
           FROM `'._DB_PREFIX_.'cart_product`
           WHERE `id_cart` = '.intval($this->id).'
           ORDER BY `date_add` DESC';
       $result = Db::getInstance()->GetRow($sql);
       if ($result AND isset($result['id_product']) AND $result['id_product'])
           return $result;
       return false;
   }



añadimos la siguiente función:

/**
 * Return cart products tax prices
 *
 * @result array Tax prices
 */
 function getPriceByTaxes ()
 {
   $priceByTaxes = array();

   if (! $this -> id )
     return 0 ;

   if ( $this -> _nb_products != NULL )
   {
     foreach( $this -> _products as $p )
     {


       if(!isset( $priceByTaxes[$p['rate']])) {
         $priceByTaxes[$p['rate']]['tax'] = $p['tax'];
         $priceByTaxes[$p['rate']]['total'] = 0;          
       }

       if ($p['price_wt']<>0)        
         $priceByTaxes[$p['rate']]['total'] += ($p['price_wt'] - $p['price']) * $p['quantity'];

     }
   }

   return $priceByTaxes ;
 }



2) Abrimos el archivo /order.php y justo debajo de la siguiente linea:

$smarty->assign(array(
       'token_cart' => $token,
       'productNumber' => $cart->nbProducts(),
       'voucherAllowed' => Configuration::get('PS_VOUCHERS'),
       'HOOK_SHOPPING_CART' => Module::hookExec('shoppingCart', $summary),
       'HOOK_SHOPPING_CART_EXTRA' => Module::hookExec('shoppingCartExtra', $summary),
       'shippingCost' => $cart->getOrderTotal(true, 5),
       'shippingCostTaxExc' => $cart->getOrderTotal(false, 5),
       'customizedDatas' => $customizedDatas,
       'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_,
       'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_,
       'lastProductAdded' => $cart->getLastProduct()
       ));



Añadimos:

$smarty->assign('priceByTaxes', $cart->getPriceByTaxes()); 



3) Modificamos nuestra plantilla para mostrar las totalizaciones de los impuestos (o IVA). Por ejemplo si utilizamos la plantilla que viene por defecto en prestashop se debería hacer en el archivo /themes/prestashop/shopping-cart.tpl y buscamos una linea que ponga:

   {if $shippingCost > 0}
               {if $priceDisplay}

{l s='Total shipping (tax excl.):'}
{convertPrice price=$shippingCostTaxExc}

               {/if}
               {if !$priceDisplay || $priceDisplay == 2}

{l s='Total shipping (tax incl.):'}
{convertPrice price=$shippingCost}

               {/if}
           {/if}



Justo a continuación añadimos:

{foreach from=$priceByTaxes item=pbt}

{$pbt.tax}:
{convertPrice price=$pbt.total}

{/foreach}     



Si nuestra plantilla es distinta (como es mi caso), pues la podemos ajustar a nuestras necesidades.

Tambien os recomiendo modificar la linea de detalle para mostrar los tipos impositivos de cada producto.

Con esto damos por finalizado los cambios.

Otra a cosa a tener en cuenta de manera opcional y recomendable es la de mostrar los precios con IVA excluido, la razón de esto es que las lineas de detalles mostrarán los precios con IVA y luego se mostrará la suma del IVA, lo cual puede ser confuso para el usuario.


Yo siempre recomiendo mostrar los precios sin IVA por las siguientes razones:

1) Percepción del abaratamiento del producto, ya que el cliente a primera vista ve todo mas barato y ayuda a impulsar la comprar, y en el caso de las empresas saben que el IVA se lo van a desgrabar con lo cual no es gasto.

2) Porque según la region que vendamos los tipos impositivos varían. Por ejemplo una tienda que venda a regiones extracomunitarios o intracomunitarias puede vender sin IVA dentro de unos limites (NOTA: no confundir con comunitario ya que las Islas Canarias es intracomunitario y Alemania comunitario). Por lo tanto estas mostrando a primera vista precios que no son reales o inflados. También puede ocurrir lo contrario y es que la venta a algunos países tenga unos impuestos arancelarios superiores con lo cual tendrías que totalizar con mas precio (Ej. el impuesto de minorista de las islas canarias).

3) Cuentas claras, y es que el cliente ve el precio bruto del producto y puede ver claramente porque el precio varia según los portes, impuestos, descuentos, etc.


Espero que esto os valga de algo!

17596_5U3EN09kOFdGqZIynkEe_t

Link to comment
Share on other sites

  • 4 weeks later...

Hola,
Alguien me puede ayudar? a mi me sale todo el formualrio en español pero al añadir el IVA en el carrito me sale como VAT y en el precio unitario sin IVA me aparece -Tx donde puedo corregirlo para que me aparezca en español completamente? llevo un par de dias dandole vueltas y no hay manera.

Muchas gracias.

Edito: la palabra VAT ya la he podido cambiar, pero no encuentro donde puedo cambiar -Tx para que apareca sin IVA.

Edito2: solucionado!

Link to comment
Share on other sites

  • 2 months later...
  • 5 months later...

Muy bueno, gracias!!

Tan solo matizar que hay que hacer un pequeño cambio porque la modificación no funciona correctamente, si os dáis cuenta el IVA se está multiplicando por el número de unidades que el artículo tiene en Stock en vez de multiplicarse por las que hay en el carro, es decir, si el stock de un artículo es de 15 unidades y añades solo uno al carro, el IVA que veremos en el desglose se habrá multiplicado por 15, independientemente de las unidades que haya en el carro.

Para evitar esto, en el código que se añade en el archivo Cart.php hay que cambiar la variable $p['quantity'] por $p['cart_quantity'] para que de esta forma el IVA de cada artículo sea multiplicado por las unidades que están en el carro y no por las unidades que están en el stock.
Saludos.

Link to comment
Share on other sites

Hola Buenas.

Todo Excelente una maravilla y a la primera. gracias.

Les dejo un .rar con los archivos modificados y las copias de seguridad para aquellos que no lo tengan claro, el archivo shopping-cart.tpl es de mi Tema pero puede que les sirva. (PS v.1.3.2.x) Traen tambien la modificación que indica nuestro compañero rafiki aun que a mi me iva igual de las dos formas xD




...
También os recomiendo modificar la linea de detalle para mostrar los tipos impositivos de cada producto.
...

Otra a cosa a tener en cuenta de manera opcional y recomendable es la de mostrar los precios con IVA excluido...



Tengo consulta sobre estos dos temas.... como se consigue modificar la linea de detalle para mostrar los tipos impositivos de cada producto y para que puede servir.

Y como se muestran los precios con IVA excluido?

Gracias.

ivaseparado.zip

Link to comment
Share on other sites

Lo de mostrar los tipos impositivos junto a cada producto no sé como hacerlo, pero lo de mostrar los precios con el IVA excuido creo que lo puedes hacer en el archivo nombredeltemplate/shopping-cart-product-line.tpl cambiando {convertPrice price=$product.price_wt} por {convertPrice price=$product.price} allá por la línea 19.
Saludos.

Link to comment
Share on other sites

Hola Rafiki buenas noches.

acabo de probar lo que comentas para visualizar los precios sin IVA y no funciona (al menos a mi xD) continua salido de las dos formas el precio con IVA incluido.

Alguien podría confirmas que no funcione (o si) la solución de rafiki.

La posibilidad de poder excluir el Iva es muy interesante para todos, haber si podemos conseguirlo.

Nuestro compañero hhtj en este post nos da una pista, Tecnicoloco parece ser que lo a conseguido en esta web e incluso también poder mostrar abajo el precio con iva.

Un Saludo

EDITO:

Como se están tratando todos los temas del IVA en este post les adjunto el enlace a un post que recientemente creé, el mismo extiende mas aun la complejidad del asunto que nos concierne y añade una lista de tipos de impuestos para todos los paises de la Union Europea que supongo que pueden resultarles utiles.
Como añadir/Modificar los tipos de Impuestos para los diferentes paises Europeos

Link to comment
Share on other sites

No se si nos referimos a lo mismo, lo que yo te he puesto actua sobre el precio unitario del producto en la cesta, es decir la variable {convertPrice price=$product.price_wt} muestra el precio unitario con IVA, y la variable {convertPrice price=$product.price} lo muestra sin IVA.
Al menos a mí me funciona, supongo que dependerá de la plantilla que estés usando...
Saludos.

Link to comment
Share on other sites

Hola Rafiki.

Jeje, no, no hablabamos de lo mismo, yo hablaba del precio mostrado en el producto y tu del mostrado al carrito xD

Si, me funciona, en "precio de la Unidad" me aparece el Precio sin Iva (supongo que te refieres a ese) como se puede ver en la Img adjunta. Eso esta bien, pero aun me he fijado que falta algo importante en "Total" (donde multiplica el precio unitario por la cantidad deseada muestra el precio con IVA cuando tiene de ser también sin IVA.

Alguna idea?

Gracias Rafiki, por todo.

31557_IbVXzngyFT9CeD3PY488_t

Link to comment
Share on other sites

Fijate a partir de la linea 30 aproximadamente, tienes algunas variables que acaban en _wt eso significa with tax (con taxas), prueba a eliminarles la parte _wt y seguramente te mostrará el valor sin IVA, es cuestión de probar.
Saludos.
;-)

Link to comment
Share on other sites

Hola buenas.

He estado probando y bueno... jeje tedreis de hecharme una manita. xDDD

en mi template solo he encontrado 2 parametros mas que contengan la terminación _tw esta es la linea:

    {if $quantityDisplayed == 0 AND isset($customizedDatas.$productId.$productAttributeId)}{convertPrice price=$product.total_customization_wt}{else}{convertPrice price=$product.total_wt}{/if}



la primera si la cambias no parece hacer nada...
la segunda si que quita el iva del sumatorio de cantidades.

ahora bien, hace falta modificar también el Total de productos y el calculo del transporte que también tienen de estar sin IVA dado que el sumatorio con el IVA debe estar solamente en el TOTAL (Final), pero prce que esten en otro archivo.

Un Saludo.

EDITO1:

Les adjunto los archivos modificados hasta la fecha por si puede interesarles.

31578_2zPTEtaih9s0l8pDEMgV_t

ivaseparado_r2.zip

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...