Carrito de compras en ASP clásico
Código ASP clásico
- Por CoreASP /
- 02/01/2012 @ 13:12:36 /
- 1018 visitas
Vamos a ver una manera sencilla de realizar un carrito de la compra en    ASP, utilizando variables de sesión para guardar los productos    comprados, junto con sus precios y otros datos. En estos ejemplos nos    vamos a centrar exclusivamente en la funcionalidad del carrito, es    decir, la memorización de los productos comprados a lo largo de toda la    sesión, dejando de lado todo lo relativo a presentación o la extracción    de los productos de una base de datos. 
Necesitaremos guardar   los id_producto de cada uno de los productos que  se vayan introduciendo   en el carrito. Lo haremos también utilizando  variables de sesión, con   esta numeracion:
session("producto1")=23
session("producto2")=30
session("producto3")=64Con una numeración así, se puede hacer un bucle para sacar por pantalla todos los identificadores de los productos del carrito. Se haría algo como esto:
for i=1 to session("num_prod")
response.write session("producto" & i)
response.write ""
next Ahora  bien, probablemente sea útil guardar más que los simples    identificadores de los productos. Si se guarda su precio y su nombre    puede ser útil para mostrar rápidamente esos valores sin necesidad de    acceder a la base de datos. 
  
Los precios los puedes guardar de esta manera:
session("precio1")=200
session("precio2")=99Los nombres de los productos los puedes guardar en variables como estas:
session("nombre1")="Reproductor DVD marca Sony"
session("nombre2")="Placa de memoria 256 MB" Implementación, edición Global.ASA y funciones de librería 
  
  Empezamos    creando un archivo Global.ASA para inicializar la variable de sesión    que guarda el número de productos, llamada session("num_prod"). La    variable se inicializa en el procedimiento 
session_onStart(). 
sub session_onStart()
session("num_prod")=0
end sub Vamos ahora con las funciones típicas del carrito que se necesitará crear en algún momento. 
  
  Introducir un producto en el carrito 
  
Se    hace con una función que recibe los datos del producto y los introduce    en variables de sesión. También aumenta en uno el número de productos    del carrito. 
sub introduce_producto(id,texto,precio)
session("num_prod") = session("num_prod") + 1
session("producto" & session("num_prod")) = id
session("nombre" & session("num_prod")) = texto
session("precio" & session("num_prod")) = precio
end sub El  incremento se hace al principio porque el numero de productos    inicialmente es cero y el primer producto a insertar deseamos que tenga    el índice uno. 
  
  Borrar un producto del carrito
  
Debemos    disponer de una función que nos permita eliminar un producto del    carrito. En este caso voy a crear una función que recibe el número de    línea del producto dentro del carrito. Podríamos recibir también el    identificador del producto a borrar o incluso puede ser que nos sea útil    crear un par de funciones para borrar productos del carrito, una    recibiendo la línea del carrito y otra recibiendo el identificador del    producto. Para este ejemplo me resulta más fácil recibir la línea en la    que está ese producto en el carrito. 
sub borra_producto(i)
session("producto" & i) = 0
end sub Simplemente  colocamos a cero el identificador de producto a borrar. No   borramos  directamente las variables de sesión porque eso nos obligaría a    recolocar todos los índices de las variables de sesión para que fuesen    correlativos. Este detalle tendremos que tenerlo en cuenta a la hora   de  mostrar el carrito, pues si el identificador de producto es cero, se    entiende que el producto está eliminado del carrito. 
  
  Tampoco    disminuimos en uno el número de productos, porque en realidad no estamos    eliminando un producto de la estructura de datos, sino que lo estoy    marcando a cero para saber que no hay nada que contabilizar en ese caso. 
  
  Código para mostrar el contenido del carrito. 
  
La    última función de las que vamos a ver aquí sirve para mostrar todos   los  productos del carrito. Tiene que hacer un simple bucle que recorra    todas las variables de sesión creadas al meter productos en el carrito.    Debe mostrar los datos de cada producto según se recorre con el bucle.    Además, debe proporcionar el importe total de la compra y un enlace   para  quitar cualquier producto del carrito. 
sub muestra_carrito()
precio_total=0
if session("num_prod")=0 then
response.write "el carrito está vacío"
else
for i=1 to session("num_prod")
response.write "linea de producto " & i & ""
if session("producto" & i) 0 then
response.write "Identificador de producto " & session("producto" & i) & ""
response.write "Nombre de producto " & session("nombre" & i) & "&l5;br>"
response.write "Precio de producto " & session("precio" & i) & ""
response.write "Borrar producto"
precio_total = precio_total + session("precio" & i)
else
response.write "Este producto ha sido borrado del carrito"
end if
response.write ""
next
response.write "El precio total del producto es " & precio_total & ""
end if
end sub La función declara primero la variable precio_total donde se guardará la suma de importes de los productos. 
  
  Luego comprueba el número de productos, porque si es cero significa que no hay nada en el carrito y debería indicarse así. 
  
  Si    había productos en el carrito, se muestran todos los productos con un    bucle que recorre las líneas del carrito, desde la primera hasta el    número de productos. En cada línea del carrito se muestran sus datos,    teniendo cuidado porque si el identificador del producto era cero quería    decir que ese producto había sido borrado del carrito. Además,    acumulamos en la variable precio_total el importe de todos los productos    del carrito que no han sido borrados previamente. 
  
  Finalmente,    aunque todavía dentro del bucle, colocamos un enlace para que el    visitante pueda eliminar un producto del carrito. Hay que darse cuenta    que el enlace para borrar un producto indica como parámetro la línea del    carrito que se debe borrar, que era lo que nosotros necesitábamos en   la  función creada para borrar los productos. 
  
  Ya fuera del   bucle,  imprimimos el importe total con la suma de los importes de los   productos  que hemos ido acumulando durante el bucle. 
  
  Ejemplos sencillos de uso de las librerías que usa el carrito 
  
  Para    ilustrar el funcionamiento de la librería del carrito vamos a realizar    unas páginas donde podremos utilizarlas. Realmente son unas páginas    sencillas, el trabajo duro ya se realizó al crear el propio carrito. 
  
  index.asp 
  
  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. 
  
  Trabajando con el carrito...
  
  Compra Secadora Magestic (id=12) por 200 euros.
  
  Compra un Corta uñas Metálico (id=28) por 3 euros.
  
  Compra Nevera Supercombi (id=5) por 550 euros.
  
  Compra Colchón Cómodo y Blandito(id=7) por 430 euros.
  
  Compra Silla Masaje Permanente (id=15) por 890 euros.
  
  Muestra el carrito
  
  introduce_producto.asp 
  
  Esta página introduce el un producto en el carrito de la compra. Recibe los datos del producto a introducir por la URL. 
  
  Introduce un producto
  
  Volver 
  
  muestra_carrito.asp 
  
La    página que muestra el carrito es básicamente una llamada a la función    de la librería que se encarga de mostrar el carrito de la compra y la    suma de los precios de los productos.
tags: carros de compras, asp base de datos, crear punto de venta, hacer un carrito de compras, como hacer un carrito de compras, como hacer un carro de compras, carrito de compras asp, ejemplo carrito de compras, carro de compras asp, carro de compas asp
En esta sección encontrarás una mezcla de códigos recopilados de fuentes públicas de Internet y otros creados por CoreASP. Estos recursos se comparten de buena fe con el único objetivo de servir como base de conocimiento en el desarrollo de aplicaciones en ASP Clásico. CoreASP no garantiza la precisión, vigencia ni funcionamiento de los artículos o fragmentos de código publicados, y no se hace responsable por el uso que se les dé. Se recomienda siempre revisar, adaptar y probar el código antes de implementarlo en entornos de producción.