Carrito asp
Hola experto necesito diseñar un carrito de compras asp que maneje los pedidos de los usuarios en una base de datos ademas de su nombre y fecha y que este me pueda generar una factura con los datos del cliente ademas de los productos que pidió.
Como me podrías ayudar con esto.
Gracias.
Como me podrías ayudar con esto.
Gracias.
1 respuesta
Respuesta de arunchi
1
1

Vamos de a poco. ¿Con qué tenés dificultad? ¿Con cómo hacer el carrito de compras? ¿Cómo grabar en BD?
Anda preguntándome de a una y los vamos resolviendo paso a paso. Te va a quedar mucho más claro.
Anda preguntándome de a una y los vamos resolviendo paso a paso. Te va a quedar mucho más claro.

Hola experto tengo el siguiente código este me permite comprar y mostrar los productos que he añadido al carrito, pero necesito que me permita guardar en otra base de datos los pedidos que hacen.
La base de datos se llama tienda.asp y contiene 2 tablas marcas la cual contiene las siguientes columnas idmarca y nombre y tbl productos la cual contiene las siguientes columnas idproducto, nombre, marca, código y precio.
O si tienes algún código o dirección web que haga lo siguiente también es válido.
Mi correo es [email protected]
<%@LANGUAGE="VBSCRIPT"%>
<%Option Explicit%>
<%Response.Buffer=True%>
<%
Sub MostrarCatalogo
Dim oRs, oRs2, SQL
Dim idmarca
set oRs=Server.CreateObject("ADODB.Recordset")
set oRs2=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM Productos;"
oRs.Open SQL, oConn
%>
<TABLE BORDER=1 CELLSPACING="0" CELLPADDING="0" style="border-collapse: collapse" bordercolor="#111111">
<TR>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><B>Distribuidor</B></font></TD>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><B>Producto</B></font></TD>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><B>Codigo</B></font></TD>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><B>Precio</B></font></TD>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><b>Comprar</b></font></TD>
<%
do until oRs.EOF
idmarca=oRs.Fields("Marca")
SQL="SELECT * FROM Marcas WHERE IdMarca="&idmarca&";"
oRs2.Open SQL, oConn
%>
<TR>
<TD><%=oRs2.Fields("Nombre")%> </TD>
<TD><%=oRs.Fields("Nombre")%> </TD>
<TD><%=oRs.Fields("codigo")%> </TD>
<TD>$ <%=oRs.Fields("Precio")%> </TD>
<TD><A HREF="comprar.asp?ac=meter&prod=<%=oRs.Fields("IdProducto")%>">Comprar</A></TD>
</TR>
<%
oRs2.Close
oRs.MoveNext
loop
%>
</TABLE>
</center>
</div>
<%
oRs.Close
set oRs=nothing
set oRs2=nothing
' Pinto opciones
%>
<center><A HREF=comprar.asp?ac=ver>Ver Carrito</A></center>
<%
End Sub
Sub MostrarCarrito
Dim oRs, oRs2, SQL
Dim clave
Dim gastos
Dim total, subtotal
gastos=2500
total=0
subtotal=0
set oRs=Server.CreateObject("ADODB.Recordset")
%>
<div align="center">
<center>
<TABLE BORDER="1" CELLPADDING="0" CELLSPACING="0" style="border-collapse: collapse" bordercolor="#111111">
<TR>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Artículo</b></font></TD>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Cantidad</b></font></TD>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Precio/unidad</b></font></TD>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Quitar del carrito</b></font></TD>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Total</b></font></TD>
</TR>
<%
For Each clave in carrito
subtotal=0
SQL="SELECT * FROM Productos WHERE IdProducto="&clave&";"
set oRs=oConn.Execute(SQL)
%>
<TR>
<TD><%=oRs.Fields("Nombre")%> </TD>
<TD><%=carrito(clave)%> </TD>
<TD>$USD <%=oRs.Fields("Precio")%> </TD>
<TD><A HREF="comprar.asp?ac=sacar&prod=<%=clave%>&cant=1">Quitar Uno</A>
<A HREF="comprar.asp?ac=sacar&prod=<%=clave%>&cant=<%=carrito(clave)%>">Quitar Todos</A>
</TD>
<%
subtotal=CSng(FormatNumber(carrito(clave))*oRs.Fields("Precio"))
total=total+subtotal
%>
<TD><%= subtotal %> </TD>
</TR>
<%
Next
if carrito.Count > 0 then
oRs.Close
set oRs=nothing
end if
%>
<TR>
<TD COLSPAN=4>Gastos de envío</TD>
<TD>
<%
if total=0 then
Response.Write("0")
else
Response.Write(gastos)
end if
%> </TD>
<TR>
<TD COLSPAN=4><B>Total:</B></TD>
<TD>
<%if total=0 then
Response.Write("0")
else
Response.Write(total+gastos)
end if
%> </TD>
</TABLE>
</center>
</div>
<%
if accion<>"fin" then
%>
<center>
<A HREF=comprar.asp>Volver a Catalogo</A> / <A HREF=pedido.asp>Hacer Pedido</A>/ <A HREF=cotizacion.asp>
Cotización</A> <br>
</center>
<%
end if
End Sub
Sub MeterArticulo (id)
if carrito.Exists(id) then
carrito(id)=carrito(id)+1
else
carrito.Add id, 1
end if
Response.Write("<center> Se ha añadido el artículo al carrito<br></center>")
End Sub
Sub SacarArticulo (id, cantidad)
if not carrito.Exists(id) then
Response.Write("")
else
if cantidad>1 then
carrito.Remove(id)
else
carrito(id)=carrito(id)-1
if carrito(id)<1 then
carrito.Remove(id)
end if
end if
end if
End Sub
Sub PasarPorCaja
%>
<P> </P>
<p align="center"><b><font face="Verdana">FACTURA DE COMPRA</font> OPTIMA</b><P> </P>
<%
MostrarCarrito
%> </p>
<p> </p>
<p> </p>
<p align="center">
<form method="POST" action="">
<p align="center">
<input type="button" ONCLICK="javascript:window.print()" value="Imprimir Factura" name="B2" style="font-size: 10pt"></p>
</p>
</form>
<%
set Session("carrito")=nothing
End Sub
Dim carrito
Dim accion
Dim producto
Dim cant
Dim oConn
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd/tienda.mdb")
if isobject(Session("carrito")) then
set carrito=Session("carrito")
else
set carrito=Server.CreateObject("Scripting.Dictionary")
end if
accion=CStr(Request.QueryString("ac"))
producto=CInt(Request.QueryString("prod"))
cant=CInt(Request.QueryString("cant"))
Select Case accion
Case "ver"
'Muestro el carrito
MostrarCarrito
Case "meter"
MeterArticulo producto
MostrarCarrito
Case "sacar"
call SacarArticulo (producto, cant)
MostrarCarrito
Case "fin"
PasarPorCaja
Case "fin1"
PasarPorCaja
Case else
MostrarCatalogo
End Select
set Session("carrito")=carrito
oConn.Close
set oConn=nothing
%>
<p> </p>
<p align="center"> </p>
</body>
</html>
La base de datos se llama tienda.asp y contiene 2 tablas marcas la cual contiene las siguientes columnas idmarca y nombre y tbl productos la cual contiene las siguientes columnas idproducto, nombre, marca, código y precio.
O si tienes algún código o dirección web que haga lo siguiente también es válido.
Mi correo es [email protected]
<%@LANGUAGE="VBSCRIPT"%>
<%Option Explicit%>
<%Response.Buffer=True%>
<%
Sub MostrarCatalogo
Dim oRs, oRs2, SQL
Dim idmarca
set oRs=Server.CreateObject("ADODB.Recordset")
set oRs2=Server.CreateObject("ADODB.Recordset")
SQL="SELECT * FROM Productos;"
oRs.Open SQL, oConn
%>
<TABLE BORDER=1 CELLSPACING="0" CELLPADDING="0" style="border-collapse: collapse" bordercolor="#111111">
<TR>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><B>Distribuidor</B></font></TD>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><B>Producto</B></font></TD>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><B>Codigo</B></font></TD>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><B>Precio</B></font></TD>
<TD bgcolor="#3399cc" align="center"><font color="#FFFFFF"><b>Comprar</b></font></TD>
<%
do until oRs.EOF
idmarca=oRs.Fields("Marca")
SQL="SELECT * FROM Marcas WHERE IdMarca="&idmarca&";"
oRs2.Open SQL, oConn
%>
<TR>
<TD><%=oRs2.Fields("Nombre")%> </TD>
<TD><%=oRs.Fields("Nombre")%> </TD>
<TD><%=oRs.Fields("codigo")%> </TD>
<TD>$ <%=oRs.Fields("Precio")%> </TD>
<TD><A HREF="comprar.asp?ac=meter&prod=<%=oRs.Fields("IdProducto")%>">Comprar</A></TD>
</TR>
<%
oRs2.Close
oRs.MoveNext
loop
%>
</TABLE>
</center>
</div>
<%
oRs.Close
set oRs=nothing
set oRs2=nothing
' Pinto opciones
%>
<center><A HREF=comprar.asp?ac=ver>Ver Carrito</A></center>
<%
End Sub
Sub MostrarCarrito
Dim oRs, oRs2, SQL
Dim clave
Dim gastos
Dim total, subtotal
gastos=2500
total=0
subtotal=0
set oRs=Server.CreateObject("ADODB.Recordset")
%>
<div align="center">
<center>
<TABLE BORDER="1" CELLPADDING="0" CELLSPACING="0" style="border-collapse: collapse" bordercolor="#111111">
<TR>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Artículo</b></font></TD>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Cantidad</b></font></TD>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Precio/unidad</b></font></TD>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Quitar del carrito</b></font></TD>
<TD bgcolor="#3399CC" align="center"><font color="#FFFFFF"><b>Total</b></font></TD>
</TR>
<%
For Each clave in carrito
subtotal=0
SQL="SELECT * FROM Productos WHERE IdProducto="&clave&";"
set oRs=oConn.Execute(SQL)
%>
<TR>
<TD><%=oRs.Fields("Nombre")%> </TD>
<TD><%=carrito(clave)%> </TD>
<TD>$USD <%=oRs.Fields("Precio")%> </TD>
<TD><A HREF="comprar.asp?ac=sacar&prod=<%=clave%>&cant=1">Quitar Uno</A>
<A HREF="comprar.asp?ac=sacar&prod=<%=clave%>&cant=<%=carrito(clave)%>">Quitar Todos</A>
</TD>
<%
subtotal=CSng(FormatNumber(carrito(clave))*oRs.Fields("Precio"))
total=total+subtotal
%>
<TD><%= subtotal %> </TD>
</TR>
<%
Next
if carrito.Count > 0 then
oRs.Close
set oRs=nothing
end if
%>
<TR>
<TD COLSPAN=4>Gastos de envío</TD>
<TD>
<%
if total=0 then
Response.Write("0")
else
Response.Write(gastos)
end if
%> </TD>
<TR>
<TD COLSPAN=4><B>Total:</B></TD>
<TD>
<%if total=0 then
Response.Write("0")
else
Response.Write(total+gastos)
end if
%> </TD>
</TABLE>
</center>
</div>
<%
if accion<>"fin" then
%>
<center>
<A HREF=comprar.asp>Volver a Catalogo</A> / <A HREF=pedido.asp>Hacer Pedido</A>/ <A HREF=cotizacion.asp>
Cotización</A> <br>
</center>
<%
end if
End Sub
Sub MeterArticulo (id)
if carrito.Exists(id) then
carrito(id)=carrito(id)+1
else
carrito.Add id, 1
end if
Response.Write("<center> Se ha añadido el artículo al carrito<br></center>")
End Sub
Sub SacarArticulo (id, cantidad)
if not carrito.Exists(id) then
Response.Write("")
else
if cantidad>1 then
carrito.Remove(id)
else
carrito(id)=carrito(id)-1
if carrito(id)<1 then
carrito.Remove(id)
end if
end if
end if
End Sub
Sub PasarPorCaja
%>
<P> </P>
<p align="center"><b><font face="Verdana">FACTURA DE COMPRA</font> OPTIMA</b><P> </P>
<%
MostrarCarrito
%> </p>
<p> </p>
<p> </p>
<p align="center">
<form method="POST" action="">
<p align="center">
<input type="button" ONCLICK="javascript:window.print()" value="Imprimir Factura" name="B2" style="font-size: 10pt"></p>
</p>
</form>
<%
set Session("carrito")=nothing
End Sub
Dim carrito
Dim accion
Dim producto
Dim cant
Dim oConn
set oConn=Server.CreateObject("ADODB.Connection")
oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("bd/tienda.mdb")
if isobject(Session("carrito")) then
set carrito=Session("carrito")
else
set carrito=Server.CreateObject("Scripting.Dictionary")
end if
accion=CStr(Request.QueryString("ac"))
producto=CInt(Request.QueryString("prod"))
cant=CInt(Request.QueryString("cant"))
Select Case accion
Case "ver"
'Muestro el carrito
MostrarCarrito
Case "meter"
MeterArticulo producto
MostrarCarrito
Case "sacar"
call SacarArticulo (producto, cant)
MostrarCarrito
Case "fin"
PasarPorCaja
Case "fin1"
PasarPorCaja
Case else
MostrarCatalogo
End Select
set Session("carrito")=carrito
oConn.Close
set oConn=nothing
%>
<p> </p>
<p align="center"> </p>
</body>
</html>

OK. Lo que tenés que hacer para grabar en una BD es simple.
Te paso el código comentado:
<%
'OBLIGO A DEFINIR LAS VARIABLES ANTES DE USARLAS
Option Explicit
'CREO LA CONEXION Y LA ABRO
Dim oConnection
Set oConnection = Server.CreateObject("ADODB.Connection")
oConnection.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\TuBaseDeDatos.mdb;Persist Security Info=False")
'EJECUTO EL QUERY PARA DAR DE ALTA
oConnection.Execute "INSERT INTO PRODUCTOS (Nombre, Marca) Values('" & VariableNombre & "','" & VariableMarca & "')"
'DESTRUYO LA CONEXION
oConnection.Close
Set oConnection = Nothing
%>
En la línea donde hago el execute tenés que armar el quert según tu BD e ir concatenando los valores a tu gusto.
Te paso el código comentado:
<%
'OBLIGO A DEFINIR LAS VARIABLES ANTES DE USARLAS
Option Explicit
'CREO LA CONEXION Y LA ABRO
Dim oConnection
Set oConnection = Server.CreateObject("ADODB.Connection")
oConnection.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\TuBaseDeDatos.mdb;Persist Security Info=False")
'EJECUTO EL QUERY PARA DAR DE ALTA
oConnection.Execute "INSERT INTO PRODUCTOS (Nombre, Marca) Values('" & VariableNombre & "','" & VariableMarca & "')"
'DESTRUYO LA CONEXION
oConnection.Close
Set oConnection = Nothing
%>
En la línea donde hago el execute tenés que armar el quert según tu BD e ir concatenando los valores a tu gusto.
- Compartir respuesta
- Anónimo
ahora mismo
