Hemos creado en vidadel un script pequeñito en php para mostar aleatoriamente (imágenes, precio y enlace al producto dentro de la tienda) elementos de la tienda en cualquier otra página que no sea del propio PrestaShop,se puede configurar:

  • Número de productos a mostrar.
  • Número de elementos por fila.
  • Dirección de instalación de nuestro PrestaShop.
  • id_image-medium se puede cambiar por el tamaño de imagen que deseemos.

Estaría bien que cada modificación la publiquéis así ganamos todos.

Un saludo y ahí va el código.

<?
$db_host="localhost"; // Host al que conectar, habitualmente es el ‘localhost’
$db_nombre="prestashop"; // Nombre de la Base de Datos que se desea utilizar
$db_user="usuario"; // Nombre del usuario con permisos para acceder
$db_pass=""; // Contraseña de dicho usuario
$link=mysql_connect($db_host, $db_user, $db_pass) or die ("Error conectando a la base de datos.");
// Seleccionamos la base de datos que nos interesa
mysql_select_db($db_nombre ,$link) or die("Error seleccionando la base de datos.");
// Devolvemos $link porque nos hará falta más adelante, cuando queramos hacer consultas.
return $link;

?>

<img src="<? echo IMGTIENDA ?>" width="148" height="21">
<table  align="center" width="100%"  cellpadding="0" cellspacing="0"  >
<?php

$url_tienda="tienda/"; //dirección de donde tenemos instalada nuestra tienda
$numcolumnas = 2;  //numero de columnas
$cant_productos=6; //Cantidad de productos a mostrar
$id_idioma=    3; //idioma en el que queremos recuperar los datos

$sql = "select ps_image.id_product, id_image , price, name from ps_image, ps_product, ps_product_lang WHERE ps_image.id_product = ps_product.id_product
group by ps_image.id_product order by rand()  LIMIT $cant_productos";

$consulta = mysql_query($sql);
$total_resultados = mysql_num_rows($consulta);
if ($total_resultados>0)
{
echo "<tr valign='top'  align='left'><td colspan=\"$numcolumnas\"></td></tr>";
$i = 1;
while ($row = mysql_fetch_object($consulta))
{
$resto = ($i % $numcolumnas);
$sqlobtener="select name from ps_product_lang where id_product='$row->id_product' and id_lang='$id_idioma'";
$consutlasql=mysql_query($sqlobtener);
$registrosql=mysql_fetch_array($consutlasql);
if($resto == 1){ /*si es el primer elemento creamos una nueva fila*/
echo "<tr valign='top'  align='left'>";
}
echo "<td align='center'  >

<br><a >id_product&id;_lang=$id_idioma' target='blank_'>
<img  style='border-color:#F90'>id_product-$row->id_image-medium.jpg'  /></a>".utf8_encode($registrosql[name])."<br>";
$precio=(($row->price*16)/100 )+$row->price;
$preu = number_format($precio, 2, ',', '');
echo $preu." Euros <br>
<a >id_product' target='blank_'>".VER."</a> <br>";
echo "</td>";
/*mostramos el valor del campo especificado*/
if($resto == 0)
{/*cerramos la fila*/
echo "</tr>";
}
$i++;
}
if($resto != 0){/*Si en la última fila sobran columnas, creamos celdas vacías*/
for ($j = 0; $j < ($numcolumnas - $resto); $j++){
echo "<td></td>";
}
echo "</tr>";
}
}
else
{
echo "  ";
}
?>
<tr>
<td height="50" colspan="3" align="center" valign="bottom"><a href="<? echo $url_tienda."lang=".$id_idioma; ?>" target="_blank"><img src="<? echo IMGIRTIENDA; ?>" width="140" height="33" border="0"></a></td>
</tr>
</table>

Esperamos que os sea útil.

Mostrar productos de tienda prestashop en otras webs internas o externas
Etiquetado en:

13 thoughts on “Mostrar productos de tienda prestashop en otras webs internas o externas

  • 14 de Junio de 2010 a las 05:21
    Enlace permanente

    Que tal amigo, gracias por compartir tus conocimientos, resulta que probe tu codigo y funciona bien lo la descripción de los prodcutos pero las imagnes de los prodcutos no se ven
    creo que puede ser por la url donde tengo instalada mi tienda:

    $url_tienda=”/var/www/shop/”;

    ¿tienes alguna idea de por que sera?

  • 15 de Junio de 2010 a las 21:55
    Enlace permanente

    Hola Mario,
    si mal no recuerdo has de indicar la url relativa de tu web, es decir si tu sitio raiz es www has de poner $url_tienda=”shop/”

    un saludo,

  • 2 de Octubre de 2010 a las 11:39
    Enlace permanente

    Hola jvidagany, gracias por compartir el codigo el cual me funciona bien.

    Quisiera preguntarte, si se puede utilizar ese codigo para que trabaje en HTML y como podria configurarlo para que recoja los productos nuevos de la tienda, la idea es enviar boletines con los nuevos productos, ya que existe un modulo para Prestashop que hace eso. Seria de gran utilidad. Si puedes orientarme.

    Gracias nuevamente. Que estes bien.

  • 21 de Noviembre de 2010 a las 22:55
    Enlace permanente

    alguna web de ejemplo para ver como funciona???
    Saludos

  • 2 de Febrero de 2011 a las 21:48
    Enlace permanente

    Hola, está muy interesante el articulo, pero no he podido mostrar mi web prestashop dentro de mi pagina de fans de facebook, me gustaría saber como es posible hacerlo ? Se que hay módulos que hacen eso pero desgraciadamente para mi son de pagos todos y no puedo permitirmelo. Existe alguna forma de crear una pestaña (ejemplo: Tienda) dentro de mi página facebook y cuando los fans accedan a esa pestaña puedan ver mis productos, lo intenté con el código que ofrecen aqui pero no ha sido posible, podrían ayudarme ?
    Muchas Gracias por la colaboración, Saludos.

  • 2 de Febrero de 2011 a las 21:52
    Enlace permanente

    De hecho no entiendo que hace esto aquí Conectarse(); ? o se mucho de programación, pero entiendo que eso es una llamada a una función, que no veo en ninguna parte del codigo. Bueno realmente no soy capaz de mostrar mis productos segun este codigo dentro de mi pagina facebook.

    Gracias.

  • 2 de Febrero de 2011 a las 21:53
    Enlace permanente

    De hecho no entiendo que hace esto aquí Conectarse(); ? no se mucho de programación, pero entiendo que eso es una llamada a una función, que no veo en ninguna parte del codigo. Bueno realmente no soy capaz de mostrar mis productos segun este codigo dentro de mi pagina facebook.

    Gracias.

  • 2 de Febrero de 2011 a las 22:39
    Enlace permanente

    Bueno luego de mucho pelear con el codigo he conseguido algo, pero creo que todo el codigo esta muy mal redactado, el resultado por ejemplo de un producto seria esto:
    id_product&id;_lang=3′ target=’blank_’> id_product-69-medium.jpg’ />cacos
    13,92 Euros
    id_product’ target=’blank_’>VER

    No sirve el codigo, esta mal redactado. Es mi humilde opinion, creo que habra que hacerlo de nuevo, cuando lo termine lo subo completo ya que veo que nadie me ayuda, jejeejeje. Gracias

  • 2 de Febrero de 2011 a las 23:37
    Enlace permanente

    Bueno como dicen el que sigue la consigue, jejejejee, este es el codigo funcionando correctamente, ahora muestra las imagenes perfectamente, los textos y todo al 100 %, pero falta algo que a ver como lo soluciono, al acceder a los enlaces ver o desde la imagen no va al producto seleccionado, logicamente no ira nunca porque no se coje de la base de datos el acceso a la categoria del producto, etc…. seguire investigando, mientras aqui tienen el codigo corregido.Saludos

    0)
    {
    echo “”;
    $i = 1;
    while ($row = mysql_fetch_object($consulta))
    {
    $resto = ($i % $numcolumnas);
    $sqlobtener=”select name from ps_product_lang where id_product=’$row->id_product’ and id_lang=’$id_idioma'”;
    $consutlasql=mysql_query($sqlobtener);
    $registrosql=mysql_fetch_array($consutlasql);
    if($resto == 1){ /*si es el primer elemento creamos una nueva fila*/
    echo “”;
    }
    echo ”

    id_product’&id_lang=$id_idioma’ target=’blank_’>
    id_product-$row->id_image-medium.jpg’ />
    “.utf8_encode($registrosql[name]).””;
    $precio=(($row->price*16)/100 )+$row->price;
    $preu = number_format($precio, 2, ‘,’, ”);
    echo $preu.” Euros
    id_product’ target=’blank_’>”.VER.” “;
    echo “”;
    /*mostramos el valor del campo especificado*/
    if($resto == 0)
    {/*cerramos la fila*/
    echo “”;
    }
    $i++;
    }
    if($resto != 0){/*Si en la última fila sobran columnas, creamos celdas vacías*/
    for ($j = 0; $j < ($numcolumnas – $resto); $j++){
    echo "”;
    }
    echo “”;
    }
    }
    else
    {
    echo ” “;
    }
    ?>

  • 2 de Febrero de 2011 a las 23:58
    Enlace permanente

    bueno veo que se corta el codigo, asi que no podre colocarlo corregido, saludos.

  • 3 de Febrero de 2011 a las 15:34
    Enlace permanente

    Hola Oscar, tal y como comentas el código ha sufrido alguna actualización en la que no hemos quitado código innecesario y/o podría provocar errores.

    En cualquier caso esperamos que te haya servido, al menos como base para tu sistema, el cual sinos envías por correo electrónico te publicaremos citando siempre al autor 🙂

    un saludo,

  • 1 de Julio de 2011 a las 07:35
    Enlace permanente

    Hola, no consigo que me funcione el script por mas que lo he intentado.
    La página a mostrar se queda en blanco y no puedo ver nada.
    La conexión a la base de datos es correcta, no entiendo cual es el problema.
    Por favor, pegar el código correcto quien lo tenga funcionando…
    Gracias y un saludo

Deja un comentario

A %d blogueros les gusta esto: