Traducir o eliminar Gratis (Free) en los costes de envío de Prestashop

Hoy vamos con otra de esos fallos innecesarios de Prestashop. Si tu haces un pedido, y tienes puesto que los costes de envío se calculen por la dirección, aquellos clientes que sean invitados verán Costes de envío: Gratis hasta que rellenen dicha información.  Obviamente esto está mal, los costes de envío están pendiente de cálculo. Primer error.

Ok, pues la solución sería traducirlo ¿no? Pues aquí está el segundo error, la traducción no funciona. Aparece el término en la plantilla Classic pero nosotros tenemos una plantilla “hija” y, aunque hemos movido todo lo pertinente a ella, no aparece ahí. Suponemos que tampoco si tienes otra plantilla. Os explicamos por qué.

Traducir o eliminar Gratis en los costes de envío de Prestashop.

Como decimos el error está en el sistema de traducciones. Este término está en el fichero src/Adapter/Cart/CartPresenter.php. Ahí aparece lo siguiente:

$subtotals[‘shipping’] = array(
‘type’ => ‘shipping’,
‘label’ => $this->translator->trans(‘Shipping’, array(), ‘Shop.Theme.Checkout’),
‘amount’ => $shippingCost,
‘value’ => $shippingCost != 0
? $this->priceFormatter->format($shippingCost)
: $this->translator->trans(‘Free’, array(), ‘Shop.Theme.Checkout’),

Esto hace que debería poner la traducción en tu tema, pero en nuestro caso no lo hace. Sólo en el tema padre.

Así que hay dos soluciones:

  • Cambiar eso de Free ahí en ese fichero. Pero en cualquier actualización se borrará el cambio.
  • En nuestro caso la traducción está en el tema Classic (aunque usemos un tema hijo), en Shop > Theme > Checkout.  Por lo tanto lo modificamos en el tema padre. No sabemos si lo cambia al actualizar (suponemos que sí).

Esperamos que esto lo solucionen pronto.

En nuestro caso, hemos puesto “Pendiente de cálculo de los costes de envío” en todos los idiomas, y así, cuando ponen la dirección, ya aparecen los costes.