Supongamos que una prestigiosa empresa dedicada a Registro de dominios y Web Hosting desea vender sus productos a través de su propia página web en Internet. La empresa investigó en el mercado, encontró nuestra buena reputación en la industria :-) y nos encargó el proyecto de programación de su tienda on-line.

En primer lugar, lógicamente, destaparemos una cerveza para festejar nuestro nuevo trabajo e importante cliente obtenido ;-).

Luego…, ¡a programar!

Ahora bien, la empresa cuenta con tres productos y desea que sus clientes puedan adquirir cuantas unidades deseen de cada uno de ellos. Otro punto muy importante es que sea posible comprar distintos productos dentro de un mismo pedido de compra (sin necesidad de tener que reiniciar el proceso luego de confirmar la compra).

Para hacerte una idea de lo que deseamos construir puedes ver la demo del script para tienda on-line (e-commerce) en php.

Lo primero que necesitaremos es crear una pantalla donde podamos presentar un producto, permitir al usuario seleccionar la cantidad de unidades que desea y finalmente ordenar el producto (común en todo script e-commerce). Comenzaremos con el primer producto «Web Hosting» para el cuál crearemos una página llamada «web-hosting.html». Su look y código más relevante es el siguiente:

Nota: al final del artículo tienes el link para encontrar y copiar todo el código fuente del script.

Consideraciones muy importantes para la programación de esta pantalla HTML donde presentamos el servicio de web hosting:

  • la sentencia <form action=»ordenar_producto.php» method=»post»> nos sirve para abrir un formulario y especificar el script php que tomará y procesará sus datos; luego que el usuario presione el botón submit. En este caso, se trata del script «ordenar_producto.php»
  • los dos campos ocultos «producto» y «precio unitario» que se declaran cada uno con la sentencia <input type=»hidden» … Recordemos que los campos ocultos nos sirven para configurar campos adicionales en el formulario sin que el usuario pueda ver o editar su valor en pantalla.
  • el campo desplegable que le permitirá al usuario seleccionar la cantidad de unidades que desea comprar del producto
  • el botón «submit», que permitirá al usuario ordenar el producto y pasar a la próxima pantalla. En nuestro caso la próxima pantalla es el script «ordenar_producto.php» la cual hemos definido al configurar el formulario (ver el 1er ítem de las consideraciones)

Lo segundo que necesitaremos es crear el script ordenar_producto.php, cuya función será:

  1. tomar los datos del formulario
  2. actualizar la cesta de compra de nuestro cliente (en la cesta de compra tenemos almacenados todos los productos ordenados por nuestro cliente)
  3. mostrar la cesta de compra en pantalla; para que el cliente pueda revisar los productos ordenados y el precio total que lleva acumulado

Nota: cesta de compra también se conoce como «carro de compras» o «carrito de compras» en otros países de habla hispana y la graficamos en la siguiente imágen. En inglés lo podremos encontrar también como Shopping Cart

Nota: al final del artículo tienes el link para encontrar y copiar todo el código fuente del script.

1. Tomar los datos del formulario

Para tomar los datos del formulario utilizamos la variable $_POST[\’campo\’] donde \’campo\’ es el nombre del dato previamente definido en el formulario. Por ejemplo, el nombre del campo desplegable es «unidades» (definido por el atributo «name» de la etiqueta «input»). Para tomar su valor en php, lo hacemos con la sentencia: $_POST[\’unidades\’]. El mismo tratamiento aplica a los campos ocultos.

2. Actualizar la cesta de compra de nuestro cliente

Aquí viene posiblemente el paso más complejo, asíque ¡máxima atención!

Además de ingresar el producto actual en la cesta de compra, debemos tener un mecanismo para recordar los productos previamente ordenados por nuestro cliente. De esta manera, nuestro cliente puede continuar observando otros productos de la tienda, agregarlos en su cesta y confirmar su pedido de compra por única vez (sin necesidad de tener que confirmar el pedido por cada producto que va agregando a la cesta).

Nota: este punto es muy importante desde el punto de vista de usabilidad del sistema (permitir al usuario hacer sus operaciones de manera más sencilla y en menor tiempo).

Para recordar los productos previamente ordenados por el usuario, por ejemplo un paquete reseller de web hosting ordenado hace 5 minutos, utilizaremos un concepto muy importante en programación web: las variables de SESSION.

Más precisamente trabajaremos con un array multidimensional llamado $_SESSION[\’productos_ordenados\’], esto vendría a ser un conjunto de arrays los cuales, en nuestro ejemplo, tendrán la misma estructura (igual cantidad y nombres de campos).

Cada array, que forma parte del array multidimensional «$_SESSION[\’productos_ordenados\’]», será conformado por cuatro campos: producto, unidades, precio-unitario y subtotal. Y guardará información de cada producto ordenado por nuestro cliente; por ejemplo si el usuario compra dos Paquetes Reseller de Web Hosting nosotros lo expresaríamos de la siguiente manera en un array:

Pero recordemos que éste array, tiene que estar dentro del array multidimensional; para que éste producto forme parte de los productos ordenados por el cliente en nuestro e-commerce.

Agregamos el array dentro del array multidimensional mediante la siguiente sentencia:

Nota: En php los corchetes «[]» detrás del nombre del array se utiliza para agregar un nuevo elemento dentro del array.

En nuestro caso, con la sentencia «$_SESSION[\'productos_ordenados\']=array ...«, estamos agregando un nuevo elemento (que también es un array) dentro del array multidimensional «$_SESSION[\'productos_ordenados\']«.

Agradecemos a la empresa Solo10.com (nuestro supuesto cliente) por facilitarnos las imágenes y características de sus productos Registro de dominios, Web hosting y Web hosting para Resellers

Desarrollar en php es parte de mi vida cotidiana, es posible que algunos conceptos teóricos los haya dado por sobreentendido… Si te agradaría profundizar algún punto en particular, por favor ingresa un comentario y lo revisamos juntos :-)

Ver y copiar todo el código fuente del script para tienda on-line (e-commerce) en PHP

Sobre el autor

Ing. Diego Angelini
(CEO & Fundador Blogdephp.com)

Un blog para ayudarte a aprender y compartir conocimientos sobre programación PHP y MySQL.