Pedir presupuesto

Carrito de compra en PHP, MySql y forma de pago Paypal (Parte 8 – Descarga de archivos y posibles mejoras de la aplicación)

Esta es la OCTAVA y definitiva parte de la serie de tutoriales en los que os explicaba como montar un carrito de compras en PHP y Mysql con forma de pago Paypal.

Lo que hemos visto hasta ahora:

Seguramente habréis hecho los deberes (ejem…) creando vuestro propio carrito de compra para tener un mejor conocimiento del funcionamiento tanto de las sesiones en PHP como de la API de Paypal y demás temas que hemos tratado en esta serie de tutoriales.

Ahora que ya hemos visto todas las partes, os dejo los archivos para que lo utilicéis en vuestros proyectos tanto personales como comerciales, pero la función real era que aprendierais.

Cuando descarguéis los ficheros, tendréis que tener en cuenta una serie de puntos para que el carrito de compras funcione en vuestro servidor local o remoto.

A tener en cuenta

  • Modificar el acceso al servidor local o remoto en el archivo estructura/conecta.php, así como la base de datos en el caso de no haberla nombrado igual que en el tutorial.
  • Modificar los correos electrónicos para enviar la información en los siguientes archivos:
    • comprar.php: Hay que modificar los correos electrónicos en los inputs del formulario que se refieren a la cuenta Paypal del vendedor.
    • exito.php: Cambiar los correos electrónicos para enviar el mail de notificación (aunque PayPal ya envia uno).
  • Modificar las rutas que hacen referencia al servidor del formulario que hay en el archivo comprar.php, en mi caso «http://localhost/varios/paypal/carro/productos.php». Poner vuestra ruta, es decir, donde esté alojado el archivo productos.php y hacerlo con los demás campos del formulario.

El archivo que os dejo está en formato .RAR, tiene un peso de 38 Kb (como véis muy liviano) y contiene tanto los archivos PHP como la hoja de estilos (CSS) y la base de datos para que podáis importarla en vuestro servidor:

Descargar Carrito de compra en PHP

Ahora que ya tenéis los archivos en vuestro poder, sería bueno que siguierais aprendiendo añadiendo más funcionalidades al carrito o mejorando otras con las siguientes posibles mejoras.

Posibles mejoras

Cualquier aplicación siempre es susceptible de mejorarla, y ésta, por supuesto, no iba a ser menos, sobre todo teniendo en cuenta que el nivel de complejidad no es muy elevado así que os propongo algunas mejoras para hacer en vuestra propia aplicación si habéis seguido el tutorial:

  • Crear un PDF con la factura y adjuntarlo en el correo electrónico
  • Incluir en el mail información de los productos comprados con sus precios y cantidades ayudándote de las variables que nos proporciona PayPal.
  • Dar de alta el pedido en la tabla PEDIDOS y DET_PEDIDOS para llevar un control de los pedidos y pagos efectuados.
  • Dar de alta el Cliente en la base de datos.
  • etc ..

Espero que este “Taller de PHP” os haya sigo de ayuda para aprender, que al fin y al cabo esa era mi intención.

Para cualquier duda, ya sabéis que podéis comentar en este mismo post o mandarme un mail a través de la zona de contacto.

¿Te ha gustado?, Comparte!!

Compartir en facebook
Compartir en twitter
Compartir en linkedin
Compartir en whatsapp
Compartir en email

24 comentarios

  1. Hola, gracias por hacer esto, llevo un día que estoy convirtiendo tu carrito para que sea un plugin para wordpress, siendo las entradas los productos en el que he incluido el campo para precio, todavia me queda para acabarlo pero tiene buena pinta.

  2. gran aporte el tuyo muchas gracias me funciona a 10ptos..

    Una dudita como haria para agregar un campo en carro.php para introducir de una vez una cantidad exacta y actualice el mismo. Gracias y exitos.!

  3. Hola de nuevo,

    ami tampoco me funciona el botón «FINALIZAR COMPRA» correspondiente a carro.php en INTERNET EXPLORER.
    solo me funciona en firefox,

    sabéis a que puede deberse el error?
    saludos!

  4. Nacho, terrible tutorial gratis tenés y encima te quejas por el funcionamiento en IE. Por favor no seas infantíl.
    Este tipo de tutoriales son para aprender, no para salvarle la vida a nadie con un copy&paste.

    Gracias, por tan buen trabajo.

  5. Muy buen tutorial, pero se me ocurren varias preguntas.
    Como sabes si una compra se ha cobrado o está pendiente o se ha cancelado o han solicitado reintegración?
    Por otra parte, si alguien manipula el formulario antes de enviar-lo a paypal como sabes que la cantidad que te han pagado es la correcta para los objetos que te han comprado?
    Lo digo porque si pongo value 0.01 en amount_1, el primer producto me sale a 0.01 €, el sistema da por hecho demasiadas cosas.. da por hecho que el pago salió bien y que se ha cobrado, esté pendiente o no, se puede manipular la cantidad que se paga a paypal sin que el vendedor se entere y además no hay forma humana de confirmar si el dinero que te pagaron es el correcto, porque si solo obtienes el TOTAL_AMOUNT en tu IPN no puedes saber el coste de cada producto… para comprobar si lo manipularon.. el total se envia con impuestos y con el descuento aplicado, así como los costes de envio y manipulacion… no? Qué mar de dudas!

    1. Agradezco tu información, pero el tutorial no era dejar un proyecto al 100% funcional, con seguridad y demás para que lo descarguéis. El tutorial era para daros una idea de como funciona el proceso de un carrito de compra con PayPal. Por supuesto que se pueden solucionar muchas cosas, pero por lo menos espero que la gente con este tutorial, tenga una base para después llevar a cabo todo lo que se le ocurra.

      Aun así, gracias por los consejos, esto le servirá a muchos de los que lo han leido para intentar resolverlo.

      Saludos.

  6. No se si me perdí en algún lado je… tengo una duda, creamos la sesión carro pero cuando un usuario se loguee eso no mata la sesión carro?

    no le encuentro la vuelta a este tema de mantener la sesión. algún tutorial que conozcan por ahí?

    1. Al revés .. cuando un usuario se loguea se tiene que empezar una sesión. En esta sesión puedes guardar los valores que quieras, pero interesa en este artículo, guardar la información de los productos y el coste, para que una vez finalice el proceso de compra, se puedan recopilar todos los productos seleccionados.

  7. Claro, entendí si, yo decía, como hago para que lo que tengo guardado en la sesión carro no me desaparezca cuando el usuario inicia la sesión correspondiente a su cuenta, esta pregunta no es solo por el carro, es algo que me tiene hace mucho buscando respuestas y no las encuentro, el manejo de sesiones se me hace un poco cuesta arriba todavía.

  8. Tienes que tener muy claro la diferencia de las sesiones y tus variables POST o GET que vienen de los formularios.

    El tema de las sesiones en PHP es bastante sencillo.
    En tu caso, en teoría tendría que estar ya la sesión creada, y tan solo tendrías que recuperar los valores que ya tienes guardados en la sesión.

    Te recomiendo lo siguiente:

    [php]
    //En el caso de no tener una sesión la creamos. Con esto puedes controlar tu caso, ya que al añadir cosas al carro de compra ya has iniciado sesión PHP con anterioridad (si lo has hecho correctamente claro xD), ahora lo único que tienes que hacer es añadir campos a la sesión.

    //la primera linea es para comprobar si esta iniciada la sesión
    if (!isset($_SESSION)) {
    session_start();
    }else{
    //guardamos los campos usuario (variable user en el formulario) y password (variable pass en el formulario) en la misma sesión.
    $_SESSION[‘usuario’] = $_POST[‘user’];
    $_SESSION[‘password’] = $_POST[‘pass’];
    }

    //Para recuperar esos valores podemos hacer los siguiente:

    $usuario = $_SESSION[‘usuario’];
    $password = $_SESSION[‘password’];

    echo $usuario . ««;
    echo $password . ««;
    [/php]

    Espero que esto sea lo que estabas buscando.

  9. Hola admin, primero disculparme porque igual no es el sitio. Estoy intentando hacer un sitio de compra de videos. Mi problema es que quiero que mi base de datos guarde la compra para que cuando ingrese en la pagina pueda verlo o descargarlo siempre que quiera. La idea, si se puede, es que haya en la bd un campo por cada video que tengo con valor booleano, por defecto 0, y que cambie a 1 si lo has comprado.
    El problema viene cuando accedemos a la funcion que registra el cambio. Como sera la misma funcion para todos necesito que el nombre del campo sea una variable pasada por POST.
    $inserta= «UPDATE users SET $_POST[video]=»1″ where usuario= $_SESSION[user]»;
    El error que me tira es este.
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘100=1 where usuario= admin’ at line 1
    Por lo que veo creo que sabe lo que le mando pero que no esta bien escrito. he dado mil vuelta por la red pero no encuentro ningun ejemplo a si. Podrias decirme en que fallo por favor.
    Gracias.

  10. Supongo que le problema te vendrá por el uso que haces de las comillas.

    Prueba esto:

    [php]
    $usuario = $_SESSION[‘user’];
    $inserta= «UPDATE users SET $_POST[video]=’1′ where usuario = ‘$usuario'»;
    [/php]

  11. Gracias por contestar tan rápido.
    Cierto es que había un error con las comillas, pero era ya por desesperación. Lo he puesto así, como me has dicho pero el error me sigue saliendo igual. Creo que el sistema entiende lo que le pido pero no lo realiza. ¿ Me podrias aconsejar como hacerlo mejor? ya que la idea es montar la pagina personal del usuario con todos los links de sus videos.

  12. BUENAS LE ESCRIBO POR UNA DUDA YO ESTOY MONTANDO UN SITIO WEB DE VENTAS Y TENGO DOS PARTE LA DE ADMIN Y LA QUE VERA EL USUARIO Y MI DUDA ES COMO ACCEDE EL ADMIN A SU PARTE, COMO SE PUEDE PONER LAS RESTRICCIONES O SI ESTO DEL ADMIN LO PONE EL HOSTING

    1. No, el hosting no lo va a poner, lo tendrás que hacer tú. A ver, hay varias formas, yo te aconsejo con un formulario de login, hay infinidad de formularios, puedes seguir un tutorial bastante completo sobre Registro de Usuarios en Php y Mysql que publiqué hace un tiempo que seguro que te ayudará en esa tarea. Tiene 8 partes y seguro que te resolverá muchas dudas.

  13. Espectacular tutorial! Cumple con el objetivo y no es puro cuento, además te ofrece los archivos en descarga en cada etapa, me ha gustado muchisimo la didáctica y facilidad en la explicación. Gracias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

¡Pide tu presupuesto!

Completa los campos para poder enviarte un presupuesto

Todos y tu presupuesto son a medida y totalmente personalizados, entendemos que dos proyectos online no pueden ser iguales y que cada cliente tiene unos objetivos y necesidades muy diferentes, es por eso que para elaborar un presupuesto, necesitamos saber de ti, tu proyecto y objetivos.

Los campos marcados con (*) son obligatorios.

La comunicación enviada quedará incorporada a un fichero del que es responsable COLORDEU. Esta comunicación se utilizará exclusivamente para tratar sus datos para atender su solicitud, siempre de acuerdo al Reglamento (UE) 2016/679 (RGPD), la Ley Orgánica 15/1999 (LOPD) y el Real Decreto 1720/2007 de desarrollo de la LOPD), sobre protección de datos. Sus datos no se comunicarán a terceros, excepto por obligación legal, y se mantendrán mientras no solicite su cancelación. En cualquier momento usted puede ejercer los derechos de acceso, rectificación, portabilidad y oposición, o si procede, a la limitación y/o cancelación del tratamiento, comunicándolo por escrito, indicando sus datos personales mediante un email a hola@colordeu.es