Jump to content

sacar el transporte del carrito, y restarle la suma del transporte al total...


matog

Recommended Posts

Hola, lo que quiero hacer es sacar el transporte del carrito y al total restarle el transporte, e intentado cambiar todas las variables y mil modificaciones pero sin exito...

la idea es que no salga el transporte sumado hasta el final de todo... alguna idea? y tambien se puede poner que el transporte sea grauito a partir de tanto dinero?¿

muchas gracias

Link to comment
Share on other sites

Hola matog, estuve modificando el blockcart y se puede hacer con algunas excepciones ya que hay que saber si ¿usaras ajaxCart? en caso contrario es más fácil.. ahora salgo a comer pero esta tarde sobre las 6 te pongo por aquí que modificaciones deberas hacer.. saludos TECNILOCO.

Link to comment
Share on other sites

Hola, primeramente desinstala/borra el módulo blockcart y súbelo nuevamente, ahora edita dentro de blockcart/blockcart.tpl y elimina las líneas 93 a 95

{l s='Shipping' mod='blockcart'}
{$shipping_cost}


ahora en el fichero blockcart/ajax-cart.js edita la línea 509 y cambia:

$('.ajax_block_cart_total').text(jsonData.total);

por

$('.ajax_block_cart_total').text(jsonData.productTotal);


En principio eso te hace desaparecer el coste de transportistas y sumar totales EN MODO AJAX.. ya me comentas saludos TECNILOCO.

Link to comment
Share on other sites

gracias por responder tecnicolo, pues mira te comento:

cuando lo he probado aparentemente funciona de lujo, pero en el momento de darle a confirmar, en la siguiente pantalla de cuando elijes a que direccion se envia, el precio del carrito se incrementa solo sumandole el transporte.

o tambien me he fijado que si estas en la principal y cambias de pagina (a otra categoria o lo que sea) justo cuando entras sale el precio del transporte sumado y al segundo se saca, pero cuando le das sal boton del carrito de continuar no se saca, se queda permanentemente el trasnporte sumado


y gracias de nuevo

Link to comment
Share on other sites

he intentado corregir el problemilla este, pero no he sido capaz, sabes a que se debe que el productoTotal varie de una pagina a otra? muchas paginas lo tienen asi, que el transporte no sale hasta el final de todo. a ver si podemos encontrar la solucion

Link to comment
Share on other sites

  • 2 weeks later...

Hola, si lo que quieres es que el en el BlockCart se muestre únicamente la suma de los productos sin el transporte, tienes que hacer lo siguiente:

- Edita el archivo modules/blockcart/blockcart.php

- Allá por la linea 47 encontrarás esto:

'total' => Tools::displayPrice($params['cart']->getOrderTotal(intval(Configuration::get('PS_PRICE_DISPLAY')) == 1 ? false : true), $currency),



- Sustituyela por esta:

'total' => Tools::displayPrice($params['cart']->getOrderTotal(intval(Configuration::get('PS_PRICE_DISPLAY')) == 1 ? false : true, 7), $currency),



Si te ha servido ponlo aquí para que lo sepamos, que hay algunos que no se molestan ni en dar las gracias.
Saludos.

Link to comment
Share on other sites

  • 2 weeks later...

hola, en el caso de la nueva versión de prestashop no aparece igual. pego como me figura a mí, a ver como me pueden ayudar. gracias.


$smarty->assign(array(
'products' => $products,
'customizedDatas' => Product::getAllCustomizedDatas(intval($params['cart']->id)),
'CUSTOMIZE_FILE' => _CUSTOMIZE_FILE_,
'CUSTOMIZE_TEXTFIELD' => _CUSTOMIZE_TEXTFIELD_,
'discounts' => $params['cart']->getDiscounts(false, $usetax),
'nb_total_products' => intval($nbTotalProducts),
'shipping_cost' => Tools::displayPrice($params['cart']->getOrderTotal($usetax, 5), $currency),
'show_wrapping' => $wrappingCost > 0 ? true : false,
'wrapping_cost' => Tools::displayPrice($wrappingCost, $currency),
'product_total' => Tools::displayPrice($params['cart']->getOrderTotal($usetax, 4), $currency),
'total' => Tools::displayPrice($params['cart']->getOrderTotal($usetax), $currency),
'id_carrier' => intval($params['cart']->id_carrier),
'ajax_allowed' => intval(Configuration::get('PS_BLOCK_CART_AJAX')) == 1 ? true : false


borro la de shipping? en mi caso no se va a cobrar el envío, por lo que no necesito ni que sume a la cuenta, ni que figure en el carrito. Sin embargo si necesito que al registrarse seleccionen su país como forma obligatoria (actualmente está así)

espero por sus respuestas.

muchas gracias amigos.

Link to comment
Share on other sites

Ahora allá por la linea 47 encontrarás esto:

'total' => Tools::displayPrice($params['cart']->getOrderTotal(intval(Configuration::get('PS_PRICE_DISPLAY')) == 1 ? false : true), $currency),



- Sustituyela por esta:

'total' => Tools::displayPrice($params['cart']->getOrderTotal(intval(Configuration::get('PS_PRICE_DISPLAY')) == 1 ? false : true, 7), $currency),

Link to comment
Share on other sites

es lo que le estoy diciendo amigo, lo más parecido, es en la línea 59:

'total' => Tools::displayPrice($params['cart']->getOrderTotal($usetax), $currency),
'id_carrier' => intval($params['cart']->id_carrier),
'ajax_allowed' => intval(Configuration::get('PS_BLOCK_CART_AJAX')) == 1 ? true : false


y no es igual, como debería cambiarlo?

Link to comment
Share on other sites

  • 2 years later...

pongo mi granito de arena, no para este caso pues ya es un hilo viejo, pero sí para los que se encuentren en la misma situación.

Si lo solucionó el usuario "delabarca" y cómo lo hizo siempre será un misterio... (suele pasar mucho en los foros)

 

Versión Prestashop 1.5.2.

 

 

En blockcart.tpl:

 

Buscamos:

 

<span id="cart_block_shipping_cost" class="price ajax_cart_shipping_cost">{$shipping_cost}</span>
  <span>{l s='Shipping' mod='blockcart'}</span>
  <br/>

(línea 142)

 

y lo "comentamos", quedando así:

 

 

<!-- <span id="cart_block_shipping_cost" class="price ajax_cart_shipping_cost">{$shipping_cost}</span>
<span>{l s='Shipping' mod='blockcart'}</span>
<br/>
-->

 

 

 

 

Luego, en BLOCKCART.PHP, buscamos:

 

 

'total' => Tools::displayPrice($totalToPay, $currency),

 

(está en la línea 120)

 

y lo substituimos por:

 

'total' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING), $currency),

 

 

De este modo, el carrito no mostrará el coste de envío y mostrará un precio total sin sumar el envío.

 

Saludos.

Edited by marc131 (see edit history)
  • Like 2
Link to comment
Share on other sites

  • 3 months later...
  • 2 months later...

pongo mi granito de arena, no para este caso pues ya es un hilo viejo, pero sí para los que se encuentren en la misma situación.

Si lo solucionó el usuario "delabarca" y cómo lo hizo siempre será un misterio... (suele pasar mucho en los foros)

 

Versión Prestashop 1.5.2.

 

 

En blockcart.tpl:

 

Buscamos:

 

<span id="cart_block_shipping_cost" class="price ajax_cart_shipping_cost">{$shipping_cost}</span>
  <span>{l s='Shipping' mod='blockcart'}</span>
  <br/>

(línea 142)

 

y lo "comentamos", quedando así:

 

 

<!-- <span id="cart_block_shipping_cost" class="price ajax_cart_shipping_cost">{$shipping_cost}</span>
<span>{l s='Shipping' mod='blockcart'}</span>
<br/>
-->

 

 

 

 

Luego, en BLOCKCART.PHP, buscamos:

 

 

'total' => Tools::displayPrice($totalToPay, $currency),

 

(está en la línea 120)

 

y lo substituimos por:

 

'total' => Tools::displayPrice($params['cart']->getOrderTotal($useTax, Cart::BOTH_WITHOUT_SHIPPING), $currency),

 

 

De este modo, el carrito no mostrará el coste de envío y mostrará un precio total sin sumar el envío.

 

Saludos.

 

Que bien funciono perfecto en ps1.5.2, pero ahora como se puede aplicar lo mismo cuando uno le da click a confirmar y pasa a la pagina de resumen de pedido donde aparece total de envío. Lo ideal es que solo apareciera cuando uno esta en el 4 paso del checkout.

 

Muchas gracias por la colaboración.

Link to comment
Share on other sites

entonces deberás modificar un archivo .tpl. Yo uso la compra en una sóla página, por lo que no te puedo ser de demasiada ayuda.

 

Yo diría que es "order-detail.tpl" pero espera a que alguien te pueda ayudar mejor.

Link to comment
Share on other sites

  • 2 months later...

Hola! alguien ha logrado lo de eliminar los gastos de envío en la pagina sumario o resumen?

 

Sé que hay que editar el archivo shopping-cart.tpl y he conseguido eliminar la linea en la que salen los gastos de envío, pero en el total sigue sumandose. Entiendo que debo modificar la variable que se muestra en el total ( $total_price), pero no sé por cual. Necesito que sea una en la que aparezca el total de los productos con el iva y se resten los vales descuento.

 

 

<span id="total_price">{displayPrice price=$total_price}</span>

 

¿alguien sabe como hacerlo?

Link to comment
Share on other sites

He pensado otra opción que igual es más sencilla, ¿alguien sabe como cambiar el transporte que sale por defecto antes de seleccionar el transportista? así podría seleccionar un transporte gratuito inicialmente y por tanto no se sumaria al total.

Link to comment
Share on other sites

He pensado otra opción que igual es más sencilla, ¿alguien sabe como cambiar el transporte que sale por defecto antes de seleccionar el transportista? así podría seleccionar un transporte gratuito inicialmente y por tanto no se sumaria al total.

 

Ya lo he conseguido. Os explico un poco todo para aquellos que quieran eliminar los gastos de envio del sumario(primer paso en el proceso de compra) ya que aún no se ha seleccionado el modo de transporte.

 

 

 

1. Para que no aparezca la línea de Gastos de Envio: en el archivo shopping-cart.tpl, sobre la linea 141 nos encontramos lo siguiente:

 

{if $total_shipping_tax_exc <= 0 && !isset($virtualCart)}

<tr class="cart_total_delivery">

<td colspan="5">{l s='Shipping:'}</td>

<td colspan="2" class="price" id="total_shipping">{l s='Free Shipping!'}</td>

</tr>

{else}

{if $use_taxes}

{if $priceDisplay}

<tr class="cart_total_delivery" {if $total_shipping_tax_exc <= 0} style="display:none;"{/if}>

<td colspan="5">{if $display_tax_label}{l s='Total shipping (tax excl.):'}{else}{l s='Total shipping:'}{/if}</td>

<td colspan="2" class="price" id="total_shipping">{displayPrice price=$total_shipping_tax_exc}</td>

</tr>

{else}

<tr class="cart_total_delivery"{if $total_shipping <= 0} style="display:none;"{/if}>

<td colspan="5">{if $display_tax_label}{l s='Total shipping (tax incl.):'}{else}{l s='Total shipping:'}{/if}</td>

<td colspan="2" class="price" id="total_shipping" >{displayPrice price=$total_shipping}</td>

</tr>

{/if}

{else}

<tr class="cart_total_delivery"{if $total_shipping_tax_exc <= 0} style="display:none;"{/if}>

<td colspan="5">{l s='Total shipping:'}</td>

<td colspan="2" class="price" id="total_shipping" >{displayPrice price=$total_shipping_tax_exc}</td>

</tr>

{/if}

{/if}

 

 

Podemos eliminarlo (no lo recomiendo por si se quiere volver a poner) o añadir {* justo antes de ese código y *} justo después.

 

2. Para que en el total no se sumen los gastos de envío (porque sólo hemos eliminado la línea en la que aparece pero no lo hemos eliminado) vamos en el backoffice al Menú Envío -> Transportistas -> y en la parte de abajo seleccionamos como transportista por defecto un transporte gratuito.

 

 

A mi me ha funcionado así, espero que os sirva para los que tenéis el mismo problema.

Link to comment
Share on other sites

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