Jump to content

Ayuda con Etiqueta "Envío Gratis"


decohogar

Recommended Posts

Hola!

Estoy intentando hacer unas modificaciones sobre mi plantilla en los controllers. No tengo mucha experiencia con presta ni con smarty.

Lo que quiero hacer es agregarle una "etiqueta" de envío gratis a determinados productos según una regla. (productos cuyo precio sea mayor a $3000, de un determinado fabricante y que vaya por X transportista).

 

Tomo, por ejemplo, ProductController.php

 

Dentro del parent::initContent() Utilizo este código:

 

$lavar= (int)Tools::getValue('id_product');
$this->context->smarty->assign(array('lavar'=>$lavar));
 
y en el product.tpl pasa perfectamente la variable $lavar con el id del producto.
(el código de la regla no está desarrollado aún pero ese no es el punto.)
 
Ahora bien, al momento de replicar esto en:
CategoryController.php  /  SearchController.php  /  Indexcontroller.php
 
para pasar el id en cada producto en las páginas de categoría, resultado de búsqueda e index;
no me funciona. No me pasa el id.
 
Alguien podría guiarme? Gracias!!
Edited by decohogar (see edit history)
Link to comment
Share on other sites

  • 3 weeks later...

 

El código (por ejemplo, $ lavar = (int) Tools :: getValue ( 'id_product');) que está utilizando para obtener el ID del producto ha obtenido el parámetro id_product de la URL. En ProductController.php funciona porque hay un parámetro id_product (puede estar oculto para URLs amigables) en la página del producto, pero este parámetro no existe en ningún otro controlador.

 

English Translation:

 

The code (i.e. $lavar= (int)Tools::getValue('id_product');) which you are using to fetch the product ID fetched the id_product parameter from the URL.

 

On ProductController.php it works because there is an id_product parameter (may be hidden for friendly URLs) on a product page, but this parameter doesn't exist on any other controller.

Link to comment
Share on other sites

A lo mejor es más sencillo que implementes en la plantilla donde se muestran los productos "product-list" un código simplemente

añadiendo un:

 

{if $product.price>3000}

 echo "envio gratis con FedEx"; //por ejemplo

{/if}

 

$product.price ya es una variable que está asignada en smarty asi que no tendrías que hacer nada, en cambio para el fabricante puede que tengas que asignar esta variable desde la la clase que llama a esta plantilla. (creo que era uno de los front controller)

 

Si quisieras que saliera al escoger transportista sólo podría salir "gratis" cuando el cliente seleccione el transportista en cuyo caso habría que modificar el módulo del transportista.

 

yo lo haría así al menos

Link to comment
Share on other sites

×
×
  • Create New...