dominios y alojamiento web en hostalia

Utilización de la clase carrito en PHP

01 de octubre de 2004
Valoración del artículo:
Ejemplos sencillos de utilización de las librerías del carrito de la compra.
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
Para ilustrar el funcionamiento de la clase carrito, vamos a realizar unas páginas donde podremos utilizarla. Realmente son unas páginas sencillas, el trabajo duro ya se realizó al crear el propio carrito.
index.php
La página de inicio muestra una lista de objetos para comprar. Esta lista está completamente inventada sobre la marcha, pero en nuestros ejemplos lo lógico sería que la extrajéramos de una base de datos.
<?
include("lib_carrito.php");
?>

<html>
<head>
    <title>Trabajando con el carrito</title>
</head>

<body>


<a href="mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80">Silla modelo jupiter 80 euros</a>
<br>
<br>
<a href="mete_producto.php?id=16&nombre=mesa+camilla+oferta&precio=29">Mesa camilla en oferta 29 euros</a>
<br>
<br>
<a href="mete_producto.php?id=18&nombre=Silla+oficina&precio=102">Silla oficina 102 euros</a>
<br>
<br>
<a href="mete_producto.php?id=98&nombre=Aparador+cocina+blanco&precio=200">Aparador cocina blanco 200 euros</a>
<br>
<br>
<br>
- <a href="ver_carrito.php">Ver carrito</a>
</body>
</html>


mete_producto.php

Esta página introduce el un producto en el carrito de la compra. Recibe los datos del producto a introducir por la URL. Lo que hace es llamar al método introduce_producto(), pasando los datos del producto, que se reciben por GET.

<?
include("lib_carrito.php");
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"], $_GET["precio"]);
?>
<html>
<head>
    <title>Introduce Producto</title>
</head>
<body>

Producto introducido.
<br>
<br>
<a href="index.php">- Volver</a>
<br>
<br>
<a href="ver_carrito.php">- Ver carrito</a>

</body>
</html>

ver_carrito.php

La página que muestra el carrito es básicamente una llamada al método de la clase carrito que se encarga de mostrar el contenido del carro de la compra y la suma de los precios de los productos.

<?
include("lib_carrito.php");
?>

<html>
<head>
    <title>Introduce Producto</title>
</head>

<body>

<?
$_SESSION["ocarrito"]->imprime_carrito();
?>
<br>
<br>
<a href="index.php">Volver</a>

</body>
</html>

eliminar_producto.php

Esta página recibe por GET el índice del producto que se desea borrar. Con el índice, se llama al método elimina_producto, que se encarga de marcar como eliminado el producto del carro.

<?
include("lib_carrito.php");
$_SESSION["ocarrito"]->elimina_producto($_GET["linea"]);
?>

<html>
<head>
    <title>Introduce Producto</title>
</head>

<body>

Producto eliminado.
<br>
<br>
<br>
<a href="index.php">- Volver</a>
<br>
<br>
<a href="ver_carrito.php">- Ver carrito</a>

</body>
</html>

Compartir en redes sociales

Comentarios
Fueron enviados 32 comentarios al artículo
8 comentarios no revisados
24 comentarios revisados:
Por: Luis
03/1/2005
Este carrito es de los más sencillos que he encontrado en los Manuales de PHP, y además funciona a la perfección. Solo le falta terminar el artículo: ¿Cómo envía el cliente la peticion de compra al servidor, una vez que ha terminado de llenar su carrito?.
Por: Jose
20/4/2005
Muy practico este manual.
Pero ciertamente de nada sirve si no puedes enviar el resultado al servidor o por mail.
Si alguien puede indicarme alguna referencia de como puedo hacer que se envie por mail... Lo agradecería.

operadormail@ono.com
Gracias
Por: Elias Schmidt
14/12/2005
Hola, primeramente de agradezco Miguel por haber expuesto un carro tan bueno como este, esta COMPLETO, lo que le falta seria lo que cada uno quiere hacer luego con este carro, por lo tanto no le falta nada, yo por mi parte lo estudie y lo adapte modificando algunos códigos para que se envié por mail la solicitud de la compra, solamente lo que se tiene que hacer es agregar un par de líneas como ser:
echo '<FORM ACTION="send.php" METHOD="POST">
al archive lib_carrito.php y crear el archive send.php que en este manual lo puedes encontrar.
Nuevamente MUCHAS GRACIAS
Por: Igor André Guerra
18/12/2005
Hola yo estoy mas o menos creando esa posibilidad leyendo el array los datos e introduciendoloes en una tabla dentro de la base de datos llamada pedidos. Ahi puedo ver el numero de cliente asignado a el usuario que confirma el pedido, y de esa manera poner el marcha el pedido y poder realizarle la factura.

Si quieres echarle un vistazo a lo que estoy haciendo gracias todo a desarrolloweb claro, mas que nada porque gracias a todos los manuales que he encontrado en la web he podido realizar cosas muy majas la verdad.

La pagina es http://www.northsystems.org y no esta del todo acabado pero se puede echar un vistazo al registro de usuarios, o por ejmplo al funcionamiento del carrito. Nada mas que tenga el envio del carrito a la BD lo pondre por aqui.

Gracias a todos y sobre todo a tod@s.
Por: Noe
21/12/2005
Hola he probado el carrito y jala de maravilla e incluso hize unas modificaciones y esta de lujo, pero tengo el problema de que me envie la compra total por email a mi y con respuesta al cliente que solicito la compra, he logrado enviar los correos a mi a al cliente pero al revisar el correo no aparece la compra que realizo el cliente, solo los datos se pide al cliente, ojala y alguien me pueda ayudar a resolver esto y una vez que este terminado, les pondre el carrito con las modificaciones para que lo tomen como ejemplo.

Atentamente

Noe
Por: Rebeca
20/7/2006
Hola si necesitas que te envie la informacion al mail, existe una funcion que lo hace, funcion mail(), es muy sencillita de usar, aunque supongo que ya la conoceras, si necesitas ayuda puedes ponerte en contacto conmigo, acabo de utilizarla para un formulario de una empresa, y ahora estoy mirando como poner un carrito de la compra.
Un saludo
Por: Roberto Buil Artal
06/9/2006
Bueno como veo no soy el único que ha tenido verdaderos problemas para poder almacenar el carrito en una variable y así meterlo en la base de datos.
Pero gracias a esta URL que explica las clases http://www.desarrolloweb.com/articulos/1913.php
a mi amigo Sergi y a varias horas he creado una función que os puede servir a los novatos como yo.

//EN lib_carrito.php
//declaro 2 variables nuevas
var $codref;
var $suma;

//añado una función
function guarda_carrito(){
global $codref;
global $suma;

$suma = 0;
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
$this->codref.=$this->array_id_prod[$i] . "&nbsp;".$this->array_precio_prod[$i]. "<BR>";
$suma += $this->array_precio_prod[$i];

}
}
$this->suma=$suma*1.16;


}

//Y para finalizar las recupero desde mi página de confirma.php y las almaceno en variables para meter en la BD.

$_SESSION["ocarrito"]->guarda_carrito();
$pedido=$_SESSION["ocarrito"]->codref;
$total=$_SESSION["ocarrito"]->suma;

Espero que os sirva de algo.
Agradezco a los desarrolladores de esta web las explicaciones del código, e imagino que si no lo han dado completo es para evitar la comercialización con su herramienta. Pero aqui estamos los usuarios para ayudarnos entre todos.

Por: Logan
07/10/2006
Acabo de descargar los archivos de esta miniaplicación, veo que esta muy bien diseñado, algo sencillo para los usuarios que no somos expertos en php, analizaré bien el codigo y espero pronto publicar el codigo completo para los usuarios que no saben como mandar los datos al servidor, una vez mas Gracias a Miguel por aportarnos este tipo de manuales que nos ayudan a todos.
Por: Fer
14/12/2006
Si no te permite el servidor PHP enviar emails puedes crear una tabla con los pedidos y darlos de alta con toda la información, guardando los datos en el servidor.
Por: KRISS
03/9/2007
Felicidades por el manual, realmente ayuda mucho, por lo menos a la gente, que como yo, nos estamos iniciando en php.

Pero a la hora de ejecutarlo tenia el mismo problema que ya se a comentado anteriormente. Añadia bien cosas al carrito, pero al mostralo volvia a comenzar desde cero.
Después de darle muchas vueltas creo k he dado con la solución, por lo menos a mi me funciona.
Simplemente hay que poner al comienzo de todas las paginas(metercarrito, vercarrito, eliminarcarrito):

include("lib_carrito.php);
session_start();

Un saludo.

kaotic
Amontonar productos en carrito
14/5/2009
Buenos dias, el carrito m ha servido de mucho, tengo una duda, me gustaria saber como pudo hacer para que s un cliente compra un mismo producto varias veces, conseguir que me marcara el numero de productos de ese tipo que hay, un ejemplo seria:

Modelo Cantidad Precio
Silla 5 200

Gracias anticipadas

harry22
el link esta roto
03/6/2009
no puedo descargar los archivos

jrivero
como extraemos de la bd
02/12/2009
yo tengo mi duda de como extraer los datos de mi base de datos... eh buscado mil maneras y no puedo dar con la tecla si por favor me pueden ayudar se lo agradezco tengo q hacer eso lo antes posible...


mandar respuesta por mensaje privado o agregarme a mi msn jar_florida@hotmail.com

psbcn
carrito PHP
12/5/2010
Toto del tutorial acerca del "CARRITO DE LA COMPRA" es perfecto.
FALTA........(y aquí mi gran duda) como mandar mediante EMAIL los productos.
Es sencillo cuando hay un solo producto.
Pero, ¿ como recoger en el e-mail LOS VARIOS PRODUCTOS?

Espero una respuesta
Muy agradecido.
Pepe

Ollie
instancias
14/5/2010
disculpa miguel pero en cada script hay que instanciar el objeto cada vez?
porque intento acceder a una propiedad desde el principio cuando se supone qe ya esta instanciada y me manda al diablo alguna sugerencias?

gracias buen articulo :D

raizen7...
Imprimir la data
06/8/2010
Gracias por vuestra ayuda, me servirá de mucho, solo tenia dudas con la parte de imprimir la data pero ya lei las soluciones , solo hay que iniciar cesión e incluir las librerías.

Edyvarg...
Aumentar Cantidad de un producto
24/11/2010
Hola, el Tutorial y script del carrito en PHP esta excelente, felicidades por hacerlo tan bien y tan simple, lo único que sería necesario hacer en mi caso, es poder aumentar la cantidad de un producto al elegirlo, por ej. producto=01 precio=100usd cantidad=? - como agregar esto al objeto para que sume las cantidades necesarias? seria genial poder tener esto también en el carrito, de cualquier forma Gracias por compartirlo. Saludos.

Edyvarg...
Aumentar Cantidad Resuelto :)
24/11/2010
HOla, logré agregarle la "cantidad" al script, solo agregando pocas cosas, el funcionamiento es bastante simple, de ahí en adelante ya depende de otras cosas mas desarrollarlo, pero funciona bien :), solo agregué en "lib_carrito.php" la cantidad y en la suma de los productos el multiplicador por esa cantidad:

<?
class carrito {
//atributos de la clase
var $num_productos;
var $array_id_prod;
var $array_nombre_prod;
var $array_precio_prod;
var $array_cantidad_prod;

//constructor. Realiza las tareas de inicializar los objetos cuando se instancian
//inicializa el numero de productos a 0
function carrito () {
$this->num_productos=0;
}

//Introduce un producto en el carrito. Recibe los datos del producto
//Se encarga de introducir los datos en los arrays del objeto carrito
//luego aumenta en 1 el numero de productos
function introduce_producto($id_prod,$nombre_prod,$precio_prod,$cantidad_prod){
$this->array_id_prod[$this->num_productos]=$id_prod;
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
$this->array_precio_prod[$this->num_productos]=$precio_prod;
$this->array_cantidad_prod[$this->num_productos]=$cantidad_prod;
$this->num_productos++;
}

//Muestra el contenido del carrito de la compra
//ademas pone los enlaces para eliminar un producto del carrito
function imprime_carrito(){
$suma = 0;
echo '<table border=1 cellpadding="3">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td><b>Cantidad</b></td>
<td>&nbsp;</td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
echo '<tr>';
echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i] . "</td>";
echo "<td>" . $this->array_cantidad_prod[$i] . "</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i] * $this->array_cantidad_prod[$i];
}
}
//muestro el total
echo "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td>&nbsp;</td></tr>";
//total más IVA
echo "<tr><td><b>IVA (16%):</b></td><td> <b>" . $suma * 1.16 . "</b></td><td>&nbsp;</td></tr>";
echo "</table>";
}

//elimina un producto del carrito. recibe la linea del carrito que debe eliminar
//no lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado
function elimina_producto($linea){
$this->array_id_prod[$linea]=0;
}
}
//inicio la sesión
session_start();
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
?>

en "index.php" agregué un valor más de cantidad, en este caso de prueba solo puse 1 para el primer producto 2 para el segundo y asi sucesivamente (esto podrá ser un input desarrollando mas el codigo):

<?
include("lib_carrito.php");
?>

<html>
<head>
<title>Trabajando con el carrito</title>
</head>

<body>

<a href="mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad=1">Silla modelo jupiter 80 euros cantidad 1</a>
<br>
<br>
<a href="mete_producto.php?id=16&nombre=mesa+camilla+oferta&precio=29&cantidad=2">Mesa camilla en oferta 29 euros</a>
<br>
<br>
<a href="mete_producto.php?id=18&nombre=Silla+oficina&precio=102&cantidad=3">Silla oficina 102 euros</a>
<br>
<br>
<a href="mete_producto.php?id=98&nombre=Aparador+cocina+blanco&precio=200&cantidad=4">Aparador cocina blanco 200 euros</a>
<br>
<br>
<br>
- <a href="ver_carrito.php">Ver carrito</a>
</body>
</html>

...y por último en "mete_producto.php" agregué la variable cantidad:

<?
include("lib_carrito.php");
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"], $_GET["precio"], $_GET["cantidad"]);
?>

<html>
<head>
<title>Introduce Producto</title>
</head>

<body>

Producto introducido.
<br>
<br>
<a href="index.php">- Volver</a>
<br>
<br>
<a href="ver_carrito.php">- Ver carrito</a>

</body>
</html>

......para empezar creo que esto puede ser de ayuda, muchas Gracias de nuevo al creador de este código y si hay algún error en lo que agregué sera de gran ayuda saber como corregirlo, Saludos :)

Edyvarg...
Enviar Carrito a BD MySQL
24/11/2010
Hola, todo perfecto hasta acá, ahora solo queda encontrar la forma de enviar los resultados del carrito a una BD para que se guarden en una tabla de "pedidos", si alguien tiene alguna idea sobre esto será de mucha ayuda, gracias a todos.

serpy12
Ayuda con el envio de variables
25/3/2011
Quisiera que en esta linea:

<a href="carrito_php/mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad="></a>

Donde dice cantidad quiero que el visitante web tenga un cuadro de texto donde el pueda indicar la cantidad y enviarla al lib_carrito.php

PorFavor enviar respuesta a frankserpy@hotmail.com seria de muxa ayuda

serpy12
Ayuda por favor
25/3/2011
modifique lib_carrito.php para tener un campo mas donde meter la cantidad asi:

<?
class carrito {
//atributos de la clase
var $num_productos;
var $array_id_prod;
var $array_nombre_prod;
var $array_precio_prod;
var $array_cantidad;
//constructor. Realiza las tareas de inicializar los objetos cuando se instancian
//inicializa el numero de productos a 0
function carrito () {
$this->num_productos=0;
}

//Introduce un producto en el carrito. Recibe los datos del producto
//Se encarga de introducir los datos en los arrays del objeto carrito
//luego aumenta en 1 el numero de productos
function introduce_producto($id_prod,$nombre_prod,$precio_prod,$cantidad){
$this->array_id_prod[$this->num_productos]=$id_prod;
$this->array_nombre_prod[$this->num_productos]=$nombre_prod;
$this->array_precio_prod[$this->num_productos]=$precio_prod;
$this->array_cantidad[$this->num_productos]=$cantidad;
$this->num_productos++;

}

//Muestra el contenido del carrito de la compra
//ademas pone los enlaces para eliminar un producto del carrito
function imprime_carrito(){
$suma = 0;
echo '<table border=1 cellpadding="4">
<tr>
<td><b>Nombre producto</b></td>
<td><b>Precio</b></td>
<td><b>Cantidad</b></td>
<td>&nbsp;</td>
</tr>';
for ($i=0;$i<$this->num_productos;$i++){
if($this->array_id_prod[$i]!=0){
echo '<tr>';
echo "<td>" . $this->array_nombre_prod[$i] . "</td>";
echo "<td>" . $this->array_precio_prod[$i] . "</td>";
echo "<td>" . $this->array_cantidad[$i] . "</td>";
echo "<td><a href='eliminar_producto.php?linea=$i'>Eliminar producto</td>";
echo '</tr>';
$suma += $this->array_precio_prod[$i];
}
}
//muestro el total
echo "<tr><td><b>TOTAL:</b></td><td> <b>$suma</b></td><td>&nbsp;</td><td>&nbsp;</td></tr>";
//total más IVA
echo "<tr><td><b>IVA (18%):</b></td><td> <b>" . $suma * 1.18 . "</b></td><td>&nbsp;</td><td>&nbsp;</td></tr>";
echo "</table>";
}

//elimina un producto del carrito. recibe la linea del carrito que debe eliminar
//no lo elimina realmente, simplemente pone a cero el id, para saber que esta en estado retirado
function elimina_producto($linea){
$this->array_id_prod[$linea]=0;
}
}
//inicio la sesión
session_start();
//si no esta creado el objeto carrito en la sesion, lo creo
if (!isset($_SESSION["ocarrito"])){
$_SESSION["ocarrito"] = new carrito();
}
?>

Despues en la pag conciertos.html puse esto para pasar los datos :

CONCIERTOS HTML

<?
include("carrito_php/lib_carrito.php");
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"], $_GET["precio"], $_GET["cantidad"]);
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html" charset="iso-8859-1">
<title>Conciertos</title>
<link rel="stylesheet" href="../estilo-general.css" type="text/css" media="all">
</head>
<body>
<div id="global">
<!-- INICIO CODIGO DE CABECERA - NO TOCAR -->
<div id="curva-superior"></div>
<div id="cabecera">
<div id="logotipo"><a href="../index.html"><img src="../objetos/logotipo.gif" width="270" height="80"alt="Haz clic aquí para volver a la página de inicio"></a></div>
<div id="publicidad">Bienvenidos a mi Web</div>
</div>
<div id="navegacion">
<ul><li><a href="../index.html">Portada</a></li><li><a href="../historia/historia.html">Historia</a></li><li><a href="../discografia/discografia.html">Discografía</a></li><li><a href="../conciertos/conciertos.html">Conciertos</a></li><li><a href="../descargas/descargas.html">Descargas</a></li><li><a href="../foro/foro.html">Foro</a></li><li><a href="../souvenirs/souvenirs.html">Souvenirs</a></li>
</ul>
</div>
<!-- FIN DE CODIGO DE CABECERA -->
<div id="contenido">
<!-- INICIO CODIGO DE MENU LATERAL IZQUIERDO - NO TOCAR -->
<div id="menu">
<h1>Conciertos</h1>
<ul><li><a href="conciertos-anteriores.html">Conciertos Anteriores</a></li><li><a href="proximos-conciertos.html">Proximos Conciertos</a></li></ul>
</div>
<!-- FIN DE CODIGO DE MENU LATERAL IZQUIERDO -->
<h1>Recordando esos Conciertos</h1>
<p>Esto empezo todo en parte con algo de ilusion por introducirnos en este mundillo pero mas bien fue por quedar los colegas un dia a la semana y juntarnos lo que se llama !!Tener un dia pa los colegas!!</p>
<h2>Y Asi Fue como arrancamos</h2>
<img alt="PINTA LABIOS 135 (11K)" src="../objetos/PINTA%20LABIOS%20135.JPG" height="230" width="236" />
<a href="carrito_php/mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad=<input type="text" name="cantidad" size="20"">
<input type="text" name="cantidad" size="20"><br>
<input type="submit" value="Añadir a la cesta"><br></form></a>
<a href="carrito_php/mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad=<input type="text" name="cantidad" size="20" value"asdsa""><input type="text/submit" name="cantidad" size="20" value"sasdsad"><br></a>
<p>Despues de estar tocando semanas nos dicidimos a enviar un maqueta que luego un tiempo despues dio su fruto</p>
<p>Actualmente seguimos tocando y no pararemos de tocar y grabar canciones para esa gente que nos escucha</p>
</div>
<!-- INICIO CODIGO PIE DE PAGINA - NO TOCAR -->
<div id="pie">
<div id="pie1">
<ul><li><a href="#">Foro Ejemplo</a></li><li><a href="#">Contactos</a></li><li><a href="#">Nos Enlazan</a></li></ul></div>
<div id="pie2">Pie2</div>
<div id="pie3">
<ul><li><a href="#">Directorio</a></li><li><a href="#">TopSite</a></li><li><a href="#">Mapa de la Web</a></li></ul></div>
</div>
<!-- FIN CODIGO PIE DE PAGINA - NO TOCAR -->
<div id="curva-inferior"></div>
</div>
</body>
</html>

y mi consulta es consegui pasar todo pero quisier que en esta linea:

<a href="carrito_php/mete_producto.php?id=12&nombre=silla+modelo+jupiter&precio=80&cantidad="></a>

en la variable cantidad quiero que vaya un campo de texto donde el visitante web pueda poner lo que sea y enviar ese dato dado por el no por mi a lib_carrito.php

XD AYUDADME

Tanobru...
Error en PHP 5.3.x
09/11/2011
Estimados, he utilizado la clase sin inconvenientes, pro cuando la subo a un host que tiene PHP 5.3.37. Por favor si alguien puede ayudarme se lo agradeceré.

Chaksto...
PHP 5.x.x
13/11/2011
Tanobru...
Tengo en mi compu instalado WAMP corriendo PHP 5.3.0...
A mi me daba un error al intentar agregar un producto. Todo lo que hice fue poner:
session_start(); antes de insertar algo en el carrito, y listo. Es decir en vez de sólo poner:

<?php
include("lib_carrito.php");
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"]);
?>

Yo puse:

<?php
include("lib_carrito.php");
session_start();
$_SESSION["ocarrito"]->introduce_producto($_GET["id"], $_GET["nombre"]);
?>

Quizás te pase lo mismo que me pasaba.
Saludos!

Sik
Insertar productos
11/1/2012
Hola!
Esta muy bien este carrito y lo quiero implemantar en un proyecto en el cual estoy trabajando pero no he logrado obtener la informacion de los productos de mi BD. Ya hice la conexion y todo pero no he podido realizar este paso.

Si alguien me quisiera ayudar Gracias. Mi correo es sikmaga@gmail.com

Manuales relacionados
Categorias relacionadas
El autor
Lectura recomendada
Compra este libro en Agapea, la librería urgente a domicilio.
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...