Generar Cupon para Compras en PHP y MYSQL

Generar Cupón para Compras en PHP y MYSQL

En este tutorial crearemos como Generar Cupón para Compras en PHP y MYSQL. PHP es un lenguaje de programación del lado del servidor diseñado principalmente para el desarrollo web. Con PHP, puede permitir que su usuario interactúe directamente con el script y aprenda fácilmente su sintaxis. Es utilizado principalmente por codificadores nuevos por su entorno fácil de usar.

Crear tablas de base de datos de Generar Cupon para Compras en PHP y MYSQL

Abra el servidor web de su base de datos, luego ponga de nombre a la base de datos db_coupon, luego haga clic en Importar, luego ubique el archivo de la base de datos dentro de la carpeta de la aplicación y luego haga clic en Aceptar.

CREAR BASE DE DATOS MYSQL


O puede crear las tablas y columnas de la base de datos mediante programación. Para hacer eso, navegue a la pestaña SQL de su base de datos en PHPMyAdmin y pegue el script SQL a continuación.

CREATE TABLE `coupon` (
  `coupon_id` int(11) NOT NULL,
  `coupon_code` varchar(20) NOT NULL,
  `discount` int(10) NOT NULL,
  `status` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
CREATE TABLE `product` (
  `product_id` int(11) NOT NULL,
  `product_name` varchar(50) NOT NULL,
  `product_price` int(20) NOT NULL,
  `product_image` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
 
ALTER TABLE `coupon`
  ADD PRIMARY KEY (`coupon_id`);
 
ALTER TABLE `product`
  ADD PRIMARY KEY (`product_id`);
 
ALTER TABLE `coupon`
  MODIFY `coupon_id` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT for table `product`
--
ALTER TABLE `product`
  MODIFY `product_id` int(11) NOT NULL AUTO_INCREMENT;

Crear la Conexión a la Base de Datos
Cree el archivo conn.php y pegue el siguiente código:

<?php
    $conn = mysqli_connect('localhost', 'root', 'suclave', 'db_coupon');
 
    if(!$conn){
        die("Error: Failed to connect to database");
    }
?>

Creando la interfaz
Aquí es donde crearemos un formulario simple para nuestra aplicación. Para crear los formularios, simplemente cópielos y escríbalos en su editor de texto, luego guárdelos como se muestra a continuación, los archivos index.php y purcharse.php:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1" />
        <link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
    </head>
<body>
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <a class="navbar-brand" href="https://compubinario.com">CompuBinario</a>
        </div>
    </nav>
    <div class="col-md-3"></div>
    <div class="col-md-6 well">
        <h3 class="text-primary">GENERAR CUPON DE COMPRAS EN PHP</h3>
        <hr style="border-top:1px dotted #ccc;"/>
        <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#form_coupon"><span class="glyphicon glyphicon-plus"></span> Generar Cupon</button>
        <button type="button" class="btn btn-success" data-toggle="modal" data-target="#form_product"><span class="glyphicon glyphicon-plus"></span> Agregar Producto</button>
        <br />
        <br />
        <?php
            require 'conn.php';
            
            $query = mysqli_query($conn, "SELECT * FROM `product`") or die(mysqli_error());
            while($fetch = mysqli_fetch_array($query)){
        ?>
            <div class="col-md-3" style="border:1px solid #ccc; padding:10px; margin:23px; height:250px;">
                <img src="<?php echo $fetch['product_image']?>" width="100%"/>
                <center><h5><?php echo $fetch['product_name']?></h5></center>
                <center><h5>&#8369;<?php echo number_format($fetch['product_price'])?></h5></center>
                <br />
                <center><a href="purchase.php?product_id=<?php echo $fetch['product_id']?>" class="btn btn-warning"><span class="glyphicon glyphicon-shopping-cart"></span> Compra</a></center>
            </div>
        <?php		
            }
        ?>
    </div>
    <div class="modal fade" id="form_coupon" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog">
            <form action="save_coupon.php" method="POST">
                <div class="modal-content">
                    <div class="modal-body">
                        <div class="col-md-2"></div>
                        <div class="col-md-8">
                            <div class="form-group">
                                <label>Cupon</label>
                                <input type="text" class="form-control" name="coupon" id="coupon" readonly="readonly" required="required"/>
                                <br />
                                <button id="generate" class="btn btn-success" type="button"><span class="glyphicon glyphicon-random"></span> Generar</button>
                            </div>
                            <div class="form-group">
                                <label>Descuento</label>
                                <input type="number" class="form-control" name="discount" min="10" required="required"/>
                            </div>
                        </div>
                    </div>
                    <div style="clear:both;"></div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-danger" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Cerrar</button>
                        <button name="save" class="btn btn-primary"><span class="glyphicon glyphicon-save"></span> Guardar</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
    <div class="modal fade" id="form_product" tabindex="-1" role="dialog" aria-hidden="true">
        <div class="modal-dialog">
            <form action="save_product.php" method="POST" enctype="multipart/form-data">
                <div class="modal-content">
                    <div class="modal-body">
                        <div class="col-md-2"></div>
                        <div class="col-md-8">
                            <div class="form-group">
                                <label>Nombre</label>
                                <input type="text" class="form-control" name="product_name" required="required"/>
                            </div>
                            <div class="form-group">
                                <label>Precio</label>
                                <input type="number" class="form-control" name="product_price" min="0" required="required"/>
                            </div>
                            <div class="form-group">
                                <label>Imagen</label>
                                <input type="file" class="form-control" name="product_image" required="required"/>
                            </div>
                        </div>
                    </div>
                    <div style="clear:both;"></div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-danger" data-dismiss="modal"><span class="glyphicon glyphicon-remove"></span> Cerrar</button>
                        <button name="save" class="btn btn-primary"><span class="glyphicon glyphicon-save"></span> Guardar</button>
                    </div>
                </div>
            </form>
        </div>
    </div>
    
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/bootstrap.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $('#generate').on('click', function(){
            $.get("get_coupon.php", function(data){
                $('#coupon').val(data);
            });
        });
    });
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1" />
        <link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
    </head>
<body>
    <nav class="navbar navbar-default">
        <div class="container-fluid">
        <a class="navbar-brand" href="https://compubinario.com">CompuBinario</a>
        </div>
    </nav>
    <div class="col-md-3"></div>
    <div class="col-md-6 well">
    <h3 class="text-primary">GENERAR CUPON DE COMPRAS EN PHP</h3>
        <hr style="border-top:1px dotted #ccc;"/>
        <a href="index.php" class="btn btn-success">Atras</a>
        <br />
        <h4>Comprar Producto</h4>
        <?php
            require 'conn.php';
            $query = mysqli_query($conn, "SELECT * FROM `product` WHERE `product_id` = '$_REQUEST[product_id]'") or die(mysqli_error());
            $fetch = mysqli_fetch_array($query);
        ?>
        <div class="col-md-2"></div>
        <div class="col-md-8">
            <img src="<?php echo $fetch['product_image']?>" width="100%" height="300px"/>
            <center><h3><?php echo $fetch['product_name']?></h3></center>
            <center><h4>&#8369;<?php echo number_format($fetch['product_price'])?></h4></center>
            <div class="form-group">
                <h4 class="text-warning">*Opcional</h4>
                <label>Ingrese Codigo de Cupon</label>
                <input class="form-control" type="text" id="coupon"/>
                <input type="hidden" value="<?php echo $fetch['product_price']?>" id="price"/>
                <div id="result"></div>
                <br style="clear:both;"/>
                <button class="btn btn-primary" id="activate">Activar Cupon</button>
            </div>
            <div class="form-group">
                <label>Total</label>
                <input class="form-control" type="number" value="<?php echo $fetch['product_price']?>" id="total" readonly="readonly" lang="en-150"/>
            </div>
        </div>
    </div>
<script src="js/jquery-3.2.1.min.js"></script>
<script src="js/bootstrap.js"></script>
<script>
    $(document).ready(function(){
        $('#activate').on('click', function(){
            var coupon = $('#coupon').val();
            var price = $('#price').val();
            if(coupon == ""){
                alert("Please enter a coupon code!");
            }else{
                $.post('get_discount.php', {coupon: coupon, price: price}, function(data){
                    if(data == "error"){
                        alert("Invalid Coupon Code!");
                        $('#total').val(price);
                        $('#result').html('');
                    }else{
                        var json = JSON.parse(data);
                        $('#result').html("<h4 class='pull-right text-danger'>"+json.discount+"% Off</h4>");
                        $('#total').val(json.price);
                    }
                });
            }
        });
    });
</script>
</body>
</html>

DESCARGAR TODO EL CODIGO FUENTE

Crear consulta PHP
Este código contiene la consulta PHP de la aplicación. Este código consta de varias funcionalidades, guardará los datos en el servidor de la base de datos y mostrará un precio con descuento. Para hacer eso, simplemente copie y escriba este bloque de códigos dentro del editor de texto, luego guárdelo como se muestra a continuación, los archivos save_product.php, save_coupon.php y fet_discount.php:

<?php
    require_once 'conn.php';
    
    if(ISSET($_POST['save'])){
        $product_name = $_POST['product_name'];
        $product_price = $_POST['product_price'];
        $image_name = $_FILES['product_image']['name'];
        $image_temp = $_FILES['product_image']['tmp_name'];
        $image_size = $_FILES['product_image']['size'];
        
        
        if($image_size > 500000){
            echo "<script>alert('File too large to upload')</script>";
            echo "<script>window.location = 'index.php'</script>";
        }else{
            $file = explode(".", $image_name);
            $file_ext = end($file);
            $ext = array("png", "jpg", "jpeg");
 
            if(in_array($file_ext, $ext)){
                $location = "upload/".$image_name;
                if(move_uploaded_file($image_temp, $location)){
                    mysqli_query($conn, "INSERT INTO `product` VALUES('', '$product_name', '$product_price', '$location')") or die(mysqli_error());
                    echo "<script>alert('Product Saved!')</script>";
                    echo "<script>window.location = 'index.php'</script>";
                }
            }else{
                echo "<script>alert('Only images allowed')</script>";
                echo "<script>window.location = 'index.php'</script>";
            }
        }
        
        
    }
?>
<?php
    require_once 'conn.php';
    if(ISSET($_POST['save'])){
        $coupon_code = $_POST['coupon'];
        $discount = $_POST['discount'];
        $status = "Valid";
        $query = mysqli_query($conn, "SELECT * FROM `coupon` WHERE `coupon_code` = '$coupon_code'") or die(mysqli_error());
        $row = mysqli_num_rows($query);
        
        if($row > 0){
            echo "<script>alert('Coupon Already Use')</script>";
            echo "<script>window.location = 'index.php'</script>";
        }else{
            mysqli_query($conn, "INSERT INTO `coupon` VALUES('', '$coupon_code', '$discount', '$status')") or die(mysqli_error());
            echo "<script>alert('Coupon Saved!')</script>";
            echo "<script>window.location = 'index.php'</script>";
        }
    }
?>
<?php
    require_once 'conn.php';
    $coupon_code = $_POST['coupon'];
    $price = $_POST['price'];
    
    $query = mysqli_query($conn, "SELECT * FROM `coupon` WHERE `coupon_code` = '$coupon_code' && `status` = 'Valid'") or die(mysqli_error());
    $count = mysqli_num_rows($query);
    $fetch = mysqli_fetch_array($query);
    $array = array();
    if($count > 0){
        $discount = $fetch['discount'] / 100;
        $total = $discount * $price;
        $array['discount'] = $fetch['discount'];
        $array['price'] = $price - $total;
        
        echo json_encode($array);
        
    }else{
        echo "error";
    }
?>

Creación de la función principal
Este código contiene la función principal de la aplicación. Este código generará un código de cupón aleatorio que se utilizará al obtener un precio con descuento. Para hacer esto, simplemente siga y escriba lo siguiente dentro del editor de texto, luego guárdelo como get_coupon.php

<?php
    function coupon($l){
        $coupon = "PR".substr(str_shuffle(str_repeat('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',$l-2)),0,$l-2);

        return $coupon;
    }
    
    echo coupon(10);
?>

Ahí lo tienes, creamos con éxito el Generar Cupón para Compras en PHP y MYSQL. Espero que este sencillo tutorial te ayude a lo que estás buscando. Siéntase libre de copiar y pegar los códigos fuente anteriores e intente desarrollar un sistema simple de carga y descarga de archivos por su cuenta.

DESCARGAR TODO EL CODIGO FUENTE

Generar Cupón para Compras en PHP y MYSQL

DESCARGAR AQUÍ

Deja una respuesta

Tu dirección de correo electrónico no será publicada.