[Resolvido] Carrinho de Compra Imaster Fabyo
Olá amigos, bom dia a todos.
Há um tempo atras nosso amigo Fabyo disponibilizou um Script Php de Carrinho de compras e agora gostaria de integrá-lo ao pagseguro.
O detalhe é que todo o conteúdo do Carrinho eu gostaria de enviar ao pagseguro.
Tá tudo certo só tem um pequeno detalhe que tá dando errado!
Os dados enviados ao Pagseguro tem que ser da seguinte forma:
Observe que a sequencia tem que iniciar do número 1 em diante, e nunca iniciar do Zero.
<input type="hidden" name="item_id_**1**" value="">
<input type="hidden" name="item_descr_**1**" value="">
<input type="hidden" name="item_quant_**1**" value="1">
<input type="hidden" name="item_valor_**1**" value="">
<input type="hidden" name="item_frete_**1**" value="">
<input type="hidden" name="item_peso_**1**" value="">
<input type="hidden" name="item_id_**2**" value="">
<input type="hidden" name="item_descr_**2**" value="">
<input type="hidden" name="item_quant_**2**" value="">
<input type="hidden" name="item_valor_**2**" value="">
<input type="hidden" name="item_frete_**2**" value="">
<input type="hidden" name="item_peso_**2**" value="">
O MEU RESULTADO ESTÁ SAÍDO DESSA FORMA ABAIXO:
<input type="hidden" name="item_id_**0**" value="">
<input type="hidden" name="item_descr_**0**" value="">
<input type="hidden" name="item_quant_**0**" value="1">
<input type="hidden" name="item_valor_**0**" value="">
<input type="hidden" name="item_frete_**0**" value="">
<input type="hidden" name="item_peso_**0**" value="">
<input type="hidden" name="item_id_**1**" value="">
<input type="hidden" name="item_descr_**1**" value="">
<input type="hidden" name="item_quant_**1**" value="">
<input type="hidden" name="item_valor_**1**" value="">
<input type="hidden" name="item_frete_**1**" value="">
<input type="hidden" name="item_peso_**1**" value="">
Observe que iniciou do número 0 (ZERO) e eu já bati cabeça para que ele iniciasse do número 1 (um) ao infinito, ou seja, até a quantidade de produtos no carrinho.
Gostari de solicitar a ajuda dos amigos do Fórum para solucionar esse pequeno detalhe.
Segue abaixo como meu carrinho está se comportando:
carrinho.php
<?
//INICIALIZA A SESSÃO
session_start();
//VERIFICA SE TEM PRODUTO NO CARRINHO PARA PUXAR
if(count($_SESSION[cesta]) > 0) {
//PEGA A CHAVE DO ARRAY
$chave = array_keys($_SESSION[cesta]);
//PEGA OS DADOS DA SESSÃO
for($i=0; $i<sizeof($chave); $i++) {
//ÍNDICE
$indice = $chave[$i];
//ATRIBUI
$cesta[$indice][iD_FOTOGRAFIA] = $_SESSION[cesta][$indice][iD_FOTOGRAFIA];
$cesta[$indice][NOME_FOTOGRAFIA] = $_SESSION[cesta][$indice][NOME_FOTOGRAFIA];
$cesta[$indice][PASTA] = $_SESSION[cesta][$indice][PASTA];
$cesta[$indice][PRECO] = $_SESSION[cesta][$indice][PRECO];
$cesta[$indice][QTDE] = $_SESSION[cesta][$indice][QTDE];
// INICIO DA PREPARAÇÃO DOS PRODUTOS A SEREM ENVIADOS AO PAGSEGURO
echo'
<input type="hidden" name="item_id_'.$i.'" value=""/>
<input type="hidden" name="item_descr_'.$i.'" value="" />
<input type="hidden" name="item_quant_'.$i.'" value=""/>
<input type="hidden" name="item_valor_'.$i.'" value=""/>
<input type="hidden" name="item_frete_'.$i.'" value="">
<input type="hidden" name="item_peso_'.$i.'" value="">
';
// INICIO DA PREPARAÇÃO DOS PRODUTOS A SEREM ENVIADOS AO PAGSEGURO
}//FECHA FOR
}//FECHA IF
//VERIFICA SE A OPÇÃO ATUALIZAR FOI SELECIONADA
if($_POST[opc_atualizar]) {
//RECEBE OS PRODUTOS CHECADOS PARA ATUALIZAÇÃO
$v_atualiza = $_POST[a_prod];
//PEGA A CHAVE DO ARRAY
$chave = array_keys($v_atualiza);
//EXIBE
for($i=0; $i<sizeof($chave); $i++) {
//PEGA O INDICE DO PRODUTO
$indice = $chave[$i];
//ALTERA A QUANTIDADE DO PRODUTO SELECIONADO
$_SESSION[cesta][$indice][QTDE] = $v_atualiza[$indice][QTDE];
}//FECHA FOR}//FECHA IF
//VERIFICA SE A OPÇÃO EXCLUIR FOI SELECIONADA
elseif($_POST[opc_excluir]) {
//RECEBE OS PRODUTOS CHECADOS PARA EXCLUSÃO
$excluir = $_POST[check];
//EXIBE
for($i=0; $i<sizeof($excluir); $i++) {
//PEGA O INDICE DO PRODUTO
$indice = $excluir[$i];
//DESTRÓI A VARIÁVEL ESPECIFICADA
unset($_SESSION[cesta][$indice]);
}//FECHA FOR}//FECHA IF
//RECEBE O PEDIDO DO USUÁRIO
elseif($_POST[opc_efetivar]) {
//RECEBE AS VARIÁVEIS
$v_prod = $_POST[txtprod];
//PEGA A CHAVE DO ARRAY
$chave = array_keys($v_prod);
//EXIBE
for($i=0; $i<sizeof($chave); $i++) {
$indice = $chave[$i];
//VERIFICA
if(!empty($v_prod[$indice][QTDE]) ) {
//GRAVA NO ARRAY CESTA
$cesta[$indice][iD_FOTOGRAFIA] = $v_prod[$indice][iD_FOTOGRAFIA];
$cesta[$indice][NOME_FOTOGRAFIA] = $v_prod[$indice][NOME_FOTOGRAFIA];
$cesta[$indice][PASTA] = $v_prod[$indice][PASTA];
$cesta[$indice][PRECO] = $v_prod[$indice][PRECO];
$cesta[$indice][QTDE] = $v_prod[$indice][QTDE];
}//FECHA IF
}//FECHA FOR
//GRAVA NA SESSÃO
$_SESSION[cesta] = $cesta;}//FECHA ELSE
?>
<html>
<head>
<title>MINHAS COMPRAS</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script language="JavaScript"><!--
function enviar(opcao) {
//OPÇÃO EXCLUIR SELECIONADA
if(opcao == 'E') {
document.forms[0].opc_excluir.value = 1;
document.forms[0].submit();
}//FECHA IF
//OPÇÃO ATUALIZAR SELECIONADA
if(opcao == 'A') {
document.forms[0].opc_atualizar.value = 1;
document.forms[0].submit();
}//FECHA IF
//OPÇÃO FINALIZAR SELECIONADA
if(opcao == 'F') {
document.forms[0].opc_finalizar.value = 1;
document.forms[0].action = "https://pagseguro.uol.com.br/checkout/checkout.jhtml";
document.forms[0].submit();
}//FECHA IF
}//FECHA FUNCTION//-->
</script>
</head>
<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><?//EXIBE O CARRINHO SE TIVER PRODUTOS
if(count($_SESSION[cesta]) > 0) { ?>
<form method="post">
<input type="hidden" name="opc_excluir">
<input type="hidden" name="opc_atualizar">
<input type="hidden" name="opc_finalizar">
<table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" bordercolor="#CCCCCC">
<tr bordercolor="#CCCCCC" bgcolor="#000000">
<td width="1%" height="19" bgcolor="#FFFFFF"></td>
<td width="6%" bgcolor="#FFFFFF">Qntde</td>
<td width="34%" bordercolor="#CCCCCC" bgcolor="#FFFFFF">Fotografia</td>
<td width="11%" bgcolor="#FFFFFF">Preço</td>
<td width="16%" bgcolor="#FFFFFF">Sub-Total</td>
</tr>
<?
//PEGA A CHAVE
$chave_cesta = @array_keys($_SESSION[cesta]);
//EXIBE OS PRODUTOS DA CESTA
for($i=0; $i<sizeof($chave_cesta); $i++) {
$indice = $chave_cesta[$i];
//SUBTOTAIS DE CADA PRODUTO
$subtotal = $_SESSION[cesta][$indice][QTDE] * ereg_replace(",",".",$_SESSION[cesta][$indice][PRECO]);
//TOTAL GERAL
$total += $subtotal;
?>
<tr>
<td height="25">
<input name="check[]" type="checkbox" value="<? echo $indice; ?>">
</td>
<td height="25">
<input type="text" name="a_prod[<? echo $indice; ?>][QTDE]" value="<? echo $_SESSION[cesta][$indice][QTDE]; ?>" size="1">
</td>
<td height="25"><? echo $_SESSION[cesta][$indice][NOME_FOTOGRAFIA]; ?> </td>
<td height="25">R$ <? echo $_SESSION[cesta][$indice][PRECO]; ?> </td>
<td width="25%" height="25"> R$ <? echo number_format($subtotal,2,',','.'); ?></td>
</tr>
<?
}//FECHA FOR ?>
</table>
<table width="100%" border="0" cellspacing="3" cellpadding="2">
<tr bordercolor="#CCCCCC">
<td height="25%" colspan="3"> </td>
<td width="20%" height="25">
à pagar: </td>
<td width="27%" height="25"><? echo number_format($total,2,',','.'); ?></td>
</tr>
<tr>
<td width="3%"> </td>
<td width="2%"> </td>
<td width="48%">
<input name="btnExcluir" type="image" onClick="enviar('E');" src="images/excluir.gif" border="0" width="79" height="20">
<input name="btnAtualiza" type="image" onClick="enviar('A');" src="images/atualizar.gif" border="0" ="79" height="20">
</td>
<td><input name="submit" type="image" onClick="enviar('F');" src="images/finaliza.gif" border="0" width="79" height="20"></td>
<td> </td>
</tr>
</table>
</form>
<?}//FECHA IF(count)
else { ?>
<table width="90%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td align='center'><b>Desculpe, mas no momento você não possui nenhumm
produto.</b></td>
</tr>
</table>
<?
}//FECHA ELSE (count)?>
</td>
</tr>
</table>
</body>
</html>Discussão (6)
Carregando comentários...