Foros del Web » Programando para Internet » PHP »

AYUDA Crear Campo para Insertar BONO Descuento

Estas en el tema de AYUDA Crear Campo para Insertar BONO Descuento en el foro de PHP en Foros del Web. Hola a Todos Acabo de crear un modulo en el administrador de mi tienda virtual que crea "Códigos de Descuento", estos códigos constan de los ...
  #1 (permalink)  
Antiguo 17/03/2010, 18:41
 
Fecha de Ingreso: marzo-2010
Mensajes: 30
Antigüedad: 14 años, 9 meses
Puntos: 0
PROBLEMA con Campo de BONOS Descuento (Leer el primer Post pue me unieron 2 distinto)

Hola a Todos

Acabo de crear un modulo en el administrador de mi tienda virtual que crea "Códigos de Descuento", estos códigos constan de los siguientes Campos:

- ID
- CODIGO
- VALOR
- USADO
- ACTIVO

Pues bien, lo que yo quiero es en mi carrito de la compra, insertar una celda donde poder insertar el CODIGO, y que al pasar a la pantalla siguiente del carrito (RESUMEN Y FINALIZACIÓN) realice el descuento al total del VALOR DEL CODIGO, y de igual forma ACTUALICE EL ESTADO DEL CODIGO A USADO E INACTIVO.

El Carrito consta de 2 Partes:

1ª- Parte donde se selecciona forma de pago y envio (En esta querria meter la celda para indicar código)

2ª- Parte donde da el resumen de la conpra y se procesa el pedido para que quede ya almacenado en la SQL (Aqui deberia ya tomar el valor del codigo, restarlo al total de la compra y actualizar el estado del codigo para que no pueda ser reutilizado).

Gracias y Espero puedan hecharme una mano.

Última edición por GatorV; 19/03/2010 a las 15:54 Razón: ¬¬
  #2 (permalink)  
Antiguo 17/03/2010, 19:03
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 15 años
Puntos: 16
Respuesta: AYUDA Crear Campo para Insertar BONO Descuento

Eso son aplicaciones prefabricadas... Aquí no podemos ayudarte, no hay código sobre el que basarte, deberás consultar a tu proveedor, y si has creado tu(o algún conocido el programa), darnos código sobre el que poder mirar...

No se puede hacer nada si no es una consulta especifíca, dando datos de en donde pasa algo, archivo, linea, si pone error... Y eso no es ni un error, es algo que ni siquiera nos imaginamos y mucho menos podría resolver nadie sin añadir código, y menos si no lo vemos :(

Lo siento, amigo
  #3 (permalink)  
Antiguo 17/03/2010, 19:55
 
Fecha de Ingreso: marzo-2010
Mensajes: 30
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: AYUDA Crear Campo para Insertar BONO Descuento

Cita:
Iniciado por millan2525 Ver Mensaje
Eso son aplicaciones prefabricadas... Aquí no podemos ayudarte, no hay código sobre el que basarte, deberás consultar a tu proveedor, y si has creado tu(o algún conocido el programa), darnos código sobre el que poder mirar...

No se puede hacer nada si no es una consulta especifíca, dando datos de en donde pasa algo, archivo, linea, si pone error... Y eso no es ni un error, es algo que ni siquiera nos imaginamos y mucho menos podría resolver nadie sin añadir código, y menos si no lo vemos :(

Lo siento, amigo
Lamento decirte que no es prefabricada, solo tengo dudas de como hacer el proceso de lo que detallo precisamente arriba, da igual que sea para mi carrito que para cualquier otro solo necesito el concepto de como se haria ese envio del código y demas... y francamente estoy un poco cansado de pegar mi código por ai para que nadie lo mire y me conteste todo el mundo con cosas que no tienen nada que ver con lo que pongo.

Última edición por GatorV; 19/03/2010 a las 15:55 Razón: ¬¬
  #4 (permalink)  
Antiguo 17/03/2010, 20:58
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 15 años
Puntos: 16
Respuesta: AYUDA Crear Campo para Insertar BONO Descuento

Bien, entonces el campo se crea de esta manera:

<FORM action="dondeloredireccionará" method="post">
<input type="text" name="descuento" />

Donde quieras incluir el campo. Debes saber el nombre del boton de aceptar, o comprar, o lo que sea.


en la página donde te devuelve la busqueda
$descuento=$_POST[descuento];
if(!eregi("[0-9a-zA-Z]+",$descuento) and isset($_POST[el boto aceptar o comprar o su name] ) {
}else{

$conexion=mysql_connect("$servidor","$usserbd","$p assbd") or die("Problemas en la conexion");
mysql_select_db("nombrebbdd",$conexion) or die("Problemas en la selección de la base de datos");
$reg=mysql_query("select * from descuentos where CODIGO = '$descuento' and USADO = '0'") or
die("Problemas en el select:".mysql_error()
if ($reg=mysql_fetch_array($registros))
{ $valor = $reg[valor];
}

$sql = "UPDATE listado SET USADO= 1 WHERE CODIGO = '$descuento'" ;
mysql_query ( $sql , $conexion );
mysql_close($conexion)
}


¿lo entendiste?

Bien, ya te lo explico, primero, creamos un formulario. Y, como sabes el botón aceptar o lo creas, lo pasas por POST a una segunda pagina(que no se sabe cual es).

Lo segundo, coges esa variable $_POST[descuento] y la pasas a $descuento, luego analizas que sea alfanumerica.

Luego conectas a mysql, seleccioans la base de datos.

Buscas el campo $descuento en la tabla CODIGO y le sacas el VALOR en la consulta, que lo almacenas con la variable $valor.

Despues, buscas la variable $descuento de nuevo, diciendole(con update), que actualice el campo USADO de 0 a 1 donde $descuento sea igual al CODIGO.

Y se me olvidaba,también, si te fijaste, puse en la primera busqueda and USADO = '0', eso sirve para asegurarse de que este sin usar.

Un saludo
  #5 (permalink)  
Antiguo 18/03/2010, 05:39
 
Fecha de Ingreso: marzo-2010
Mensajes: 30
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: AYUDA Crear Campo para Insertar BONO Descuento

Bien, mis dudas son las siguientes:

- Entiendo que la parte 2 del código es la que iria en la segunda pagina del carrito.
- Supongo que el código no queda como usado mientras yo en esa segunda pagina no confirme la compra y me marche a la tercera y última pagina tipica de las tiendas donde dice "Gracias por su compra".

Esti que comento es importante pues si el código queda inutilizable en el paso 2 no estaria bien. Para que comprendas a lo que me refiero con los pasos es esto:

PASO 1: carrito.php (En esta página el cliente selecciona forma de envio, pago y demas opciones). Te defino el código que calcula el carrito en esta parte:

Código PHP:
<?
do{ $precio_producto $row["costo"]*100/(100 $row["valor"]);
$precio_bruto $row["cantidad"]*$precio_producto;
$porc_iva $precio_bruto$row["valor"]/100;
$iva_total += $porc_iva;
$subtotal += $precio_bruto;
$total += $precio_bruto $porc_iva ;
$peso_total += $row["peso"]*$row["cantidad"];

?>
PASO 2: comprar.php (En esta página el cliente visualiza el extracto del pedido, al que ya se le suman los gastos de envio previamente seleccionados en el paso 1 y si procede se restaria tambien el descuento). Ahora te indico el calculo que hace el carrito en este paso:

Código PHP:
<?
$precio_bruto 
= ($row_productos["cantidad"] * $precio_unitario);
echo 
number_format($precio_bruto,2,',','.');
$subtotal += $precio_bruto;
$total += $precio_bruto $porc_iva;
?>
PASO 3: comprar_final.php (En esta página no hay nada más que una confirmación de que el pedido se proceso satisfactoriamente).

Como puedes ver yo los pasos que quiero son:

1º en el PASO 1 disponer de la casilla para introducir el código.
2º en el PASO 2 que obtenga el descuento asociado al código y que lo reste al subtotal. y que el código mantenga su validez mientras el cliente no finaliza la compra, es decir mientras no pasa al PASO 3 que seria el fin del proceso.

Última edición por GatorV; 19/03/2010 a las 15:55 Razón: Añadido
  #6 (permalink)  
Antiguo 18/03/2010, 06:01
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 15 años
Puntos: 16
Respuesta: AYUDA Crear Campo para Insertar BONO Descuento

Entonces, tendrías que cambiar esto:

$descuento=$_POST[descuento];
if(!eregi("[0-9a-zA-Z]+",$descuento) and isset($_POST[el boto aceptar o comprar o su name] ) {
}else{

$conexion=mysql_connect("$servidor","$usserbd","$p assbd") or die("Problemas en la conexion");
mysql_select_db("nombrebbdd",$conexion) or die("Problemas en la selección de la base de datos");
$reg=mysql_query("select * from descuentos where CODIGO = '$descuento' and USADO = '0'") or
die("Problemas en el select:".mysql_error()
if ($reg=mysql_fetch_array($registros))
{ $valor = $reg[valor];
}

$sql = "UPDATE listado SET USADO= 1 WHERE CODIGO = '$descuento'" ;
mysql_query ( $sql , $conexion );
mysql_close($conexion)
}


Dejarías en el paso 2, solamente hasta aquí y añadir lo que te pongo

$descuento=$_POST[descuento];
if(!eregi("[0-9a-zA-Z]+",$descuento) and isset($_POST[el boto aceptar o comprar o su name] ) {
}else{

$conexion=mysql_connect("$servidor","$usserbd","$p assbd") or die("Problemas en la conexion");
mysql_select_db("nombrebbdd",$conexion) or die("Problemas en la selección de la base de datos");
$reg=mysql_query("select * from descuentos where CODIGO = '$descuento' and USADO = '0'") or
die("Problemas en el select:".mysql_error()

<FORM action="dondeloredireccionará" method="post">
<input type="hidden" name="descuento" />



Y en la siguiente, y última, colocar todo lo que te había puesto en la la que iba a ser la página dos(para volver a verificar desde la base de datos el descuento, y evitar algún posible problema. Con el tipo "hidden" mandas un formulario invisible a los usuarios.

Un saludo
  #7 (permalink)  
Antiguo 18/03/2010, 08:21
 
Fecha de Ingreso: marzo-2010
Mensajes: 30
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: AYUDA Crear Campo para Insertar BONO Descuento

Perdoname, me he perdido un poco:

1 - que código va en que paso....?
2 - En esta linea:
if(!eregi("[0-9a-zA-Z]+",$descuento) and isset($_POST[el boto aceptar o comprar o su name] ) {

Me pones al final "el boton aceptar o comprar o su name", no lo comprendo, pues todos los pasos tienen su propio boton continuar y finalizar.

Gracias,

Última edición por GatorV; 19/03/2010 a las 15:56
  #8 (permalink)  
Antiguo 18/03/2010, 08:27
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 15 años
Puntos: 16
Respuesta: AYUDA Crear Campo para Insertar BONO Descuento

mandame un mp con tu msn y te lo intento explicar ;)
  #9 (permalink)  
Antiguo 19/03/2010, 12:36
 
Fecha de Ingreso: marzo-2010
Mensajes: 30
Antigüedad: 14 años, 9 meses
Puntos: 0
PROBLEMON con Bonos de Afiliados en Tienda Virtual AYUDA

Hola,

Tengo el siguiente problema, tengo una Tienda virtual en la que el CARRITO se compone de dos partes "Una donde se selecciona le forma de pago, la forma de envio y tambien si el usuario es afiliado puede utilizar bonos de descuento".

El tema es, yo tengo un usuario que es AFILIADO y le doy 10 Bonos de descuento. Cuando el introduce dichos bonos en la casilla o si no introduce nada, al pasar a la pantalla de confirmación del carrito la db se actualiza y le deja los bonos en 0 (Da igual lo que haga le quita todos los bonos). Les dejo los dos códigos por si pueden ayudarme.



Codigo Carrito:
Código PHP:
<?
if ((!session_is_registered('id_usuario_session')) && (!session_is_registered('usuario_usuario_session') )){
echo 
"<center>";
include(
"include/login.inc.php");
echo 
"</center>";
}else{
$sql_afil "SELECT id_usuario,bonos FROM usuarios_afiliados WHERE id_usuario='$id_usuario_session' AND activo='1'";
$result_afil =mysql_query($sql_afil);
$es_afiliado=0;
$bonos=0;
$cantidad_afil =mysql_num_rows($result_afil);
if (
$cantidad_afil) {
$row_afiliado mysql_fetch_object($result_afil);
$bonos $row_afiliado->bonos;
$es_afiliado =1;
}
?>
Dentro del Carrito.php el Campo de los Bonos:
Código PHP:
<? if ($es_afiliado) {?>
<table width="400" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><span style="color:#fff;background:#3DA421;font-weight:bold;padding:2px"><? echo $bonos;?><font color="#FFFFFF" size="2" face="Arial, Helvetica, sans-serif">
<input name="bonos_a_usar" type="text" id="bonos_a_usar" size="10" />
</font></span></td>
</tr>
</table>
<? ?>
En Comprar.php (Paso final de la compra donde se almacenan los datos):
[PHP]<?
include("....");
include("....");

if ($_POST["notas"] != "")
$_SESSION["notas"] = $_POST["notas"];

//define('CAIXAGALICIA_PATH', 'sdicomercio'); // Pruebas
define('CAIXAGALICIA_PATH', 'lagaleria'); // Real
$sql_afil = "SELECT id_usuario,bonos FROM usuarios_afiliados WHERE id_usuario='$id_usuario_session' AND activo='1'";
$result_afil =mysql_query($sql_afil);
$es_afiliado=0;
$bonos=0;
$cantidad_afil =mysql_num_rows($result_afil);
if ($cantidad_afil) {
$bonos_a_usar = (isset($_POST['bonos_a_usar']))?$_POST['bonos_a_usar']:0;
$row_afiliado = mysql_fetch_object($result_afil);
$bonosafil = $row_afiliado->bonos;
$es_afiliado =1;
}
if ($bonos_a_usar>=$bonosafil ) {
$actualizar_bonos = 0;
$bonos_a_usar =$bonosafil;
} else {
$actualizar_bonos = $bonosafil - $bonos_a_usar;
}
if($pedido && $secuencia) {

//if($_SERVER['REMOTE_ADDR'] != "212.163.35.153") die("ERROR");

$result = mysql_query("SELECT * FROM usuarios_compras WHERE id=".intval($pedido));
$row = mysql_fetch_array($result);

$url = "http://".CAIXAGALICIA_PATH.".caixagalicia.es/tpv2/tpv_recoge.asp?comercio=TUCOMERCIO&pedido=$pedido& secuencia=".urlencode($secuencia)."&importe=".str_ replace(".", "", number_format($row["total"], 2, ".", ""))."&moneda=eur";

// $flog = fopen("_log.txt", "a");
// fwrite($flog, "[".date("Y-m-d H:i")."] - ".$_SERVER['PHP_SELF']."\n".$_SERVER['REMOTE_ADDR']." - ".$_SERVER['REMOTE_HOST']."\n".$url."\n\n");

$str = "";
ob_start();
if(@readfile($url)) {

$str = ob_get_contents();
// fwrite($flog, $str."\n\n");

if(ereg("\<ESTADO\>(.+)*\<\/ESTADO\>(.+)*\<ERROR\>(.+)*\<\/ERROR\>(.+)*\<CODOP\>(.+)*\<\/CODOP\>", $str, $tmp) && $tmp[1] == 1)
echo $str;
else
echo "<DATOS><ESTADO>2</ESTADO><ERROR>".$tmp[3]."</ERROR><CODOP></CODOP></DATOS>";

}

ob_end_clean();

// fclose($flog);

exit;
}

if ((!session_is_registered('id_usuario_session')) && (!session_is_registered('email_usuario_session'))) {
header("Location: login.php?viene=$PHP_SELF");
exit;
}

//Si enviaron el formulario lo verifico
if ($e == 1){
$bonos_usados = (isset($_POST['bonos_a_usar']))?$_POST['bonos_a_usar']:0;
$actualizar_bonos = (isset($_POST['actualizar_bonos']))?$_POST['actualizar_bonos']:0;
switch($t){
case "ce":
$datos["todo_ok"] = 1;
$mostrar = "Contrareembolso";
break;
case "db":
$metodo_pago = $t;
$mostrar = "Transferencia bancaria";
$datos["todo_ok"] = 1;
break;
case "pp":
$metodo_pago = "pp";
$mostrar = "Tarjeta de cr&eacute;dito/d&eacute;bito (Tu Banco)";
$datos["todo_ok"] = 1;
break;
case "py":
$metodo_pago = "py";
$mostrar = "PAYPAL";
$datos["todo_ok"] = 1;
break;
}


if ($datos["todo_ok"] == 1){


include("include/update.php");

$notas = $_SESSION["notas"];

//Guardo los datos de la transaccion en compras
$sql = "INSERT INTO usuarios_compras VALUES ('',
'$id_usuario_session',
'". strip_tags(str_replace("</P>","\n",str_replace("<br>","\n",$cabecera))).str i p_tags(str_replace("</P>","\n",str_replace("<br>","\n",$cuerpo))).$tele f onos.$total_final.strip_tags(str_replace("</P>","\n",str_replace("<br>","\n",$pie))) ."',
'$cuerpo_extra',
'".strtotime("now")."',
'".($total_final)."',
'0',
'".$gremio_usuario_session."',
'',
'$notas')";
$result = mysql_query($sql);
$id_transaccion = mysql_insert_id();

//Borro las transacciones
$sql = "DELETE FROM usuarios_transacciones WHERE id_usuario = '$id_usuario_session'";
$result = mysql_query($sql);


include("include/mail_admin.php");

if ($metodo_pago == "pp"){
include("include/tpv_".$tpv_seleccionado.".php");
}elseif ($metodo_pago == "py"){
include("include/paypal.php");
}else{
header("Location: comprar_f.php");
exit;
}
}
}

Última edición por GatorV; 19/03/2010 a las 15:57
  #10 (permalink)  
Antiguo 19/03/2010, 14:02
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: AYUDA Crear Campo para Insertar BONO Descuento

Creo que acá esta tu problema:

Código PHP:
Ver original
  1. if ($bonos_a_usar>=$bonosafil ) {
  2. $actualizar_bonos = 0;
  3. $bonos_a_usar =$bonosafil;
  4. } else {
  5. $actualizar_bonos = $bonosafil - $bonos_a_usar;
  6. }

Dos caminos:

- Si sabes PHP corrige el error,
- Si no sabes PHP (lo cual significa que tu no has creado el codigo) deberías de empaquetar el codigo , publicarlo y pedir a un alma caritativa que modifique esa opcion.

SAludos

Etiquetas: descuento, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:56.