Está en la página 1de 13

DPWEB I, Carrito de Compras Parte 2, Ing.

Tomas Urbina

Carrito de compras con PHP y MYSQL

Actualizando los archivos anteriores.


Primero agregaremos los botones para imprimir (printcarrito1.php utilizando el método
window.print() de JS y printcarrito.php usando la librería FPDF, cualquier referencia sobre esta libreria
pueden visitar www.fpdf.org ) y para terminar la compra agregamos el archivo pagarcompra.php .

1) Vercarrito.php
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

Por favor bajo la línea que dice $contador++; agreguen la siguiente línea, esta es para almacenar el
valor de la compra en una variable de sesión:
$_SESSION[‘ValorPagar’]=$suma;
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

El resultado del carrito de compras o la carretilla seria asi:


DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

2) printcarrito1.php
<?php
session_start();
$carro=$_SESSION['carro'];
?>
<HTML>
<HEAD>
<TITLE>Imprimir Orden</TITLE>
<style>
@media print {
.noPrint { visibility: hidden };
}
</style>
</HEAD>
<BODY>
<a href="#" onClick="window.print();return false" class="noPrint" target="_blank">Imprimir</a>
<br>
<table width="720" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td><img src="sfondo" border="0"></td>
<td colspan="3" align="center"><h1>Orden de compra</h1></td>
</tr>
<tr bgcolor="#333333">
<td><b>Producto</b></td>
<td><b>Precio</b></td>
<td><b>Cantidad</b></td>
<td><b>SubTotal</b></td>
</tr>

<?php
foreach($carro as $k => $v){
$subto=$v['cantidad']*$v['precio'];
$suma=$suma+$subto;
$contador++;
echo '<tr>';
echo '<td>'.$v['producto'].'</td>';
echo '<td>'.$v['precio'].'</td>';
echo '<td>'.$v['cantidad'].'</td>';
echo '<td>'.$subto.'</td>';
echo '</tr>';
}
?>
<tr>
<td colspan="3" align="right"><h3>Total Compra</td>
<td><?php echo '$ '.$suma; ?></td>
</tr>
</table>
<div align="center"><span class="prod">Volver al carrito</span>
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

<a href="vercarrito.php?<?php echo SID;?>">


<img src="continuar.gif" width="13" height="13" border="0"></a>
</div>
</BODY>
</HTML>

3) Printcarrito.php
<?php
session_start();
//Recuerden agregar la librería a la carpeta donde esta su proyecto
require('fpdf/fpdf.php');
$mi_carrito=$_SESSION['carro'];
if(isset($_SESSION['carro']))
{
class Mypdf extends FPDF{
public function Header(){
$this->Image("sfondo.jpg",10,10,20,20);
$this->SetFont ('Arial','B', 20);
$this-> Cell(150, 10, 'Detalle Orden de Compra' ,0,0,'C');
$this-> Ln(30);
}
}
$cabecera = array( "PRODUCTO ", "PRECIO ", "CANTIDAD ","SUBTOTAL ");
$pdf=new Mypdf();
$pdf->AddPage();
for ($j = 0; $j < count($cabecera); $j++)
{
$pdf->SetFont('Courier','B',12);
$pdf->SetTextColor(255,255,255);
$pdf->Cell(40,10, $cabecera[$j],1,0,'C',true);
}
$pdf-> Ln(10);
if (isset($mi_carrito)){
$pdf->SetFont('Arial');
$pdf-> SetFillColor(100,100,200);
foreach($mi_carrito as $k => $v)
{
$subtotal=$v['precio'] * $v['cantidad'];
$total = $total + $subtotal;
$pdf->Cell(40,10, $v['producto'],1,0,'C',true);
$pdf->Cell(40,10, $v['precio'],1,0,'C',true);
$pdf->Cell(40,10, $v['cantidad'],1,0,'C',true);
$pdf->Cell(40,10, $subtotal,1,0,'C',true);
$pdf->Ln();
}
}
$pdf->SetFont('Courier','B',12);
$pdf->SetTextColor(255,255,255);
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

$pdf->Cell(120,10, 'Total Compra:',1,0,'C',true);


$pdf->Cell(40,10, '$ '.$total,1,0,'C',true);
$pdf->Output();
}
else
{
echo "NO hay productos en el carrito";
}
?>

4) PagarCompra.php
<?php
session_start();
$carro=$_SESSION['carro'];
?>
<html>
<head>
<title>Pagar Compra</title>
<script lang="Javascript" type="text/javascript">
//Para validar tarjeta de credito
function ValidarTJ(numero_tarjeta) {
var cadena = numero_tarjeta.toString();
var longitud = cadena.length;
var cifra = null;
var cifra_cad=null;
var suma=0;
if (isEmpty(cadena)){
alert("El número de la tarjeta no es válido");
document.forms[0].numero.focus();
return false;
}

for (var i=0; i < longitud; i+=2){


cifra = parseInt(cadena.charAt(i))*2;
if (cifra > 9){
cifra_cad = cifra.toString();
cifra = parseInt(cifra_cad.charAt(0)) + parseInt(cifra_cad.charAt(1));
}
suma+=cifra;
}
for (var i=1; i < longitud; i+=2){
suma += parseInt(cadena.charAt(i));
}

//if ((suma % 10) == 0 || !isEmpty(cadena)){


if ((suma % 10) == 0){
return true
} else {
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

alert("El número de la tarjeta no es válido");


document.forms[0].numero.focus();
return false;
}
}

function VenceTJ(mes,anio) {
var vmes = parseInt(mes);
var vanio = parseInt(anio);
var ahora = new Date();

if ((vmes <= ahora.getMonth()+1) && (vanio<=ahora.getFullYear())){


alert("El vencimiento de la tarjeta no es válido");
document.forms[0].mesv.focus();
return false;
} else {
//ValidarTJ(document.forms[0].numero.value);
return true;
}
}
//-->
</SCRIPT>
</head>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">


<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="26%">
</td>
<td width="74%">
<form name="frmAutorizar" action="guardarcompra.php" method="post" onsubmit="return
validenviar(this);">
<table>
<tbody>
<tr>
<td>
<div align="center">
<table width="242" height="154">
<tr>
<td align="center">
<font color="#0255A4" size="3"><b> Valor a Pagar </font>
<font color="#0255A4" size="4">$<?php echo $_SESSION['ValorPagar'];
?></b></font>
</td>
</tr>
</table>
</div>
<table style="width: 140%">
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

<tr>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="26%" align="right">
<span class="no-style-override-12a"><b>Nombre según tarjeta: </b></span>
</td>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="73%">
<input type=text name="nombre" size="40" maxlength="50">
</td>
</tr>
<tr>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="26%" align="right">
<span class="no-style-override-12a"><b>Banco Emisor : </b></span>
</td>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="73%">
<input type=text name="emisor" size="40" maxlength="35"></td>
</tr>
<tr>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="26%" align="right">
<span class="no-style-override-12a"><b>Numero : </b></span>
</td>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="73%">
<input type="text" name="numero" id="numero" size="20" maxlength="16"
autocomplete="off" onblur="ValidarTJ(document.frmAutorizar.numero.value);"></td>
</tr>
<tr>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="26%" align="right">
<span class="no-style-override-12a"><b>Tipo : </b></span>
</td>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="73%">
<select size="1" name="Tipo"
onblur="ValidarTJ(document.frmAutorizar.numero.value);">
<option selected>Visa</option>
<option>Mastercard</option>
</select>

</td>
</tr>
<tr>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="26%" align="right">
<span class="no-style-override-12a"><b>Fecha Vencimiento : </b></span>
</td>
<td bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" width="73%">
<select size="1" name="mesv">
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select>/
<select size="1" name="aniov"
onblur="VenceTJ(document.frmAutorizar.mesv.value,document.frmAutorizar.aniov.value);">
<option><?php echo date('Y');?></option>
<?php
for ($j=1;$j<=10;$j++)
{
$anio=date('Y')+$j;
echo '<option>'.$anio.'</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td colspan=2 bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
&nbsp;
</td>
</tr>
<tr>
<td colspan=2 bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
&nbsp;
</td>
</tr>
<tr>
<td colspan=2 bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF">
<p class="basic-paragraph basic-paragraph-override-2">
<span class="no-style-override-12">Valores reflejados no incluyen IVA.</span></p>
<input type="hidden" name="idcliente" value='<?php echo
$_SESSION['tmpUsuario'];?>'>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="4" bordercolorlight="#FFFFFF" bordercolordark="#FFFFFF" align="right">
<table>
<tr>
<td align="right">
<input type="submit" name="btnComprar" Value="Ejecutar Compra" />
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

</td>
<td>
&nbsp;
</td>
</tr>
</table>
</td>
</tr>
</tbody>
</table>
</form>

</td>
</tr>
</table>
<!-- InstanceEndEditable --></td>
</tr>
</table>
</body>
<!-- InstanceEnd --></html>

<script languaje="JavaScript">
function validenviar(theform)
{
if(ValidarTJ(theform.numero.value)&&VenceTJ(theform.mesv.value,theform.aniov.value))
{
//theform.submit();
return(true);
}
else {
theform.numero.focus();
return(false);
}
}
//-->
</script>
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

5) Y por último el archivo guardarcompra.php

Agrego 2 tablas para almacenar los datos de las compras

NOTA: Por favor agreguen el campo “tipotc” varchar(50) a la tabla compra, yo lo agregue después de
sacar esta imagen.
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

Aquí el código:
DPWEB I, Carrito de Compras Parte 2, Ing. Tomas Urbina

Estoy convencido que ustedes podrán adaptarlo a sus proyectos, ponerle el diseño adecuado y
mejorarlo si es necesario.

Bendiciones!

También podría gustarte