> Manuales > Carrito de la compra en ASP

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


Referencia: Se explica el funcionamiento del Global.ASA en un artículo de DesarrolloWeb.com.

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.

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online Escu...

Manual