PlatesPHP: Sistema de plantillas para Codeigniter 3
PlatesPHP: Sistema de plantillas para Codeigniter 3

He creado una librería para codeigniter la cuál es útil si queremos tener múltiples instancias de carritos de la compra en codeigniter.

Como ya sabemos, la librería nativa soporta una única instancia, y visto que algunos usuarios me han preguntado por ésto, he decidido crearla, ya que realmente puede ser muy útil en algunos casos.

Por problemas con las sesiones(cookies) nativas de codeigniter, he decidido utilizar la librería de sesiones nativas de php en codeigniter, no hay que hacer nada, todo es como siempre, pero éstas ahora trabajan en el servidor.

Muchas de las funcionalidades vienen heredadas de la clase cart de codeigniter ya que el funcionamiento es prácticamente el mismo, lo que cambia es que ahora cada carrito puede ser una instancia diferente.

Aquí están los archivos y toda la información sobre el uso completo de la librería con ejemplos de todas las funcionalidades, de todos modos, vamos a hacer un completo repaso para que quede lo más claro posible.

Cómo crear múltiples carritos de compra en codeigniter

Lo primero que se debe hacer para poder utilizarla es crear la clave de encriptación en el archivo application/config/config.php para las sesiones.

Cada vez que se crea una nueva instancia, la librería comprueba si existe o no, si es así, la usa, en otro caso, setea unos valores necesarios para su correcto funcionamiento.

La librería session de codeigniter ya viene cargada por defecto si es que no lo está, en otro caso no hace nada.

Crear una nueva instancia

Insertar un producto

Actualizar un producto existente

En este caso, suponiendo que tenemos un producto con id 2, 10 artículos y el precio es de 2 cada unidad, lo cambiaremos de la siguiente forma.

Como podemos ver, es igual que el método insert, el campo obligatorio es el id del producto.

Eliminar un producto por su rowid

El campo rowid nos lo genera la librería, es el id en md5, y si el producto tiene opciones, es el id junto con las opciones en md5.

De esa forma el producto quedará eliminado.

Eliminar un carrito

Recordemos que $carrito1 es una instancia de la clase Udp_cart que se llama shop1.

Obtener el contenido del carrito

Obtener el coste total del carrito

Obtener el número de artículos del carrito

Todas las funcionalidades


Y eso es todo, al ser una primera versión, puede tener algún tipo de bug, pero realmente está bastante testeada y parece funcionar correctamente :), saludos.